求助:运行代码时持续报错‘DataFrame’ object has no attribute ‘train’,求排查
问题排查:‘DataFrame’ object has no attribute ‘train’
咱先把这个报错的本质说透——你在代码里某个地方尝试调用了pandas DataFrame对象的.train属性,但DataFrame根本没这个内置属性。你贴的代码片段还没到出错的那行,但结合你用TensorFlow做RNN的场景,大概率是踩了下面几个坑:
- 混淆了数据集划分的写法
比如你可能想用训练集/测试集划分,但误写成了dataset.train。正确的做法是用sklearn的train_test_split:
首先导入工具:
from sklearn.model_selection import train_test_split
然后划分数据:
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
之后直接用x_train、y_train来训练就行,别去碰dataset.train。
- 把DataFrame当成了TensorFlow Dataset对象
如果你想把pandas数据转成TensorFlow的Dataset来训练,可能错误地直接对原DataFrame调用.train。正确的转换姿势是:
# 先把划分好的numpy数组转成tf.data.Dataset train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)) train_dataset = train_dataset.batch(batch_size)
之后用这个train_dataset做迭代训练就对了。
- 遗漏了出错的代码片段
你贴的代码到weights and biases of appropriate shape to accomplish ab...就断了,大概率是后续定义模型或训练循环时,不小心写了类似dataset.train的代码。建议你全局搜索代码里的.train,定位到出错的那行,再对应上面的情况修正。
内容的提问来源于stack exchange,提问作者To win
相关产品推荐
相关产品推荐

