值 tf.Tensor.. shape=(), dtype=float64) 的批处理等级不足。?

我正在尝试获取数据帧并将它们转换为张量以在 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_train 从切片转换为张量时出现以下错误:


ValueError: Value tf.Tensor(0.10559591064345274, shape=(), dtype=float64) has insufficient rank for batching.

在教程中,这似乎有效,但我认为这些教程正在执行多类分类,而我正在执行回归,因此 y_train 是一系列而不是多列。


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


慕娘9325324
浏览 134回答 1
1回答

MYYA

要么使用: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 tfimport pandas as pddf = 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 goody = tf.data.Dataset.from_tensor_slices(y_train) # goodprint(next(iter(y)))y = tf.data.Dataset.from_tensors(y_train) # goodprint(next(iter(y)))y_train = df[['floats']].copy()y = tf.data.Dataset.from_tensor_slices(dict(y_train)) # goodnext(iter(y)){'floats': <tf.Tensor: shape=(4,), dtype=float64, numpy=array([5., 4., 3., 2.])>}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python