Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:值tf.张量。。shape=(),dtype=float64)没有足够的列组进行批处理。?_Python_Tensorflow_Keras - Fatal编程技术网

Python ValueError:值tf.张量。。shape=(),dtype=float64)没有足够的列组进行批处理。?

Python ValueError:值tf.张量。。shape=(),dtype=float64)没有足够的列组进行批处理。?,python,tensorflow,keras,Python,Tensorflow,Keras,我试图获取一个数据帧,并将其转换为张量,以在keras中训练一个模型 我想当我将Y标签转换为张量时,它会被触发: X_train = df_train1.drop(variableToPredict, axis=1) y_train = df_train1[variableToPredict].copy() X_train=tf.data.Dataset.from_tensor_slices(dict(X_train)) y_train=tf.data.Dataset.from_

我试图获取一个数据帧,并将其转换为张量,以在keras中训练一个模型

我想当我将Y标签转换为张量时,它会被触发:

  X_train = df_train1.drop(variableToPredict, axis=1)
  y_train = df_train1[variableToPredict].copy()


X_train=tf.data.Dataset.from_tensor_slices(dict(X_train))
  y_train=tf.data.Dataset.from_tensor_slices(dict(y_train))
从切片将y_列投射到张量时,我遇到以下错误:

ValueError: Value tf.Tensor(0.10559591064345274, shape=(), dtype=float64) has insufficient rank for batching.
在教程中,这似乎是可行的,但我认为这些教程正在进行多类分类,而我正在进行回归,因此y_train是一个系列,而不是多列

对我能做什么有什么建议吗?

可以使用:

y = tf.data.Dataset.from_tensors(dict(y_train))
或者这个:

y = tf.data.Dataset.from_tensor_slices(y_train)
或者只需使用双括号,使数据帧保持为数据帧,则无需更改任何内容:

y_train = df[['height']].copy()

y = tf.data.Dataset.from_tensor_slices(dict(y_train))
再现问题的完整代码,以及备选方案:

import tensorflow as tf
import pandas as pd

df = pd.DataFrame(data={'integers': [1, 2, 3, 4], 'floats': [4., 3., 2., 1]})

y_train = df['floats'].copy()

y = tf.data.Dataset.from_tensor_slices(dict(y_train)) # not good

y = tf.data.Dataset.from_tensor_slices(y_train) # good
print(next(iter(y)))

y = tf.data.Dataset.from_tensors(y_train) # good
print(next(iter(y)))

y_train = df[['floats']].copy()
y = tf.data.Dataset.from_tensor_slices(dict(y_train)) # good
next(iter(y))
{'floats':}
{'floats': <tf.Tensor: shape=(4,), dtype=float64, numpy=array([5., 4., 3., 2.])>}