1 回答
![?](http://img1.sycdn.imooc.com/54584dc4000118d302200220-100-100.jpg)
TA贡献1868条经验 获得超4个赞
要么使用:
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': <tf.Tensor: shape=(4,), dtype=float64, numpy=array([5., 4., 3., 2.])>}
添加回答
举报