0
我试图进入机器学习,并决定使用tflearn for一个开始。 我使用tflearn的快速入门指南获取基础知识,并尝试使用该神经网络完成我自己设定的任务: 从其维度预测鲍鱼的年龄。为此,我从UCI存储库中下载了相应的数据集作为.csv
。该表的格式如下:形状为'(?,1)'的Tensor'TargetsData/Y:0'无法提供形状的值(1600,)'
SEX |长度|直径|高度|整机重量|去壳WEIGHT |内脏器官的重量|壳重| RINGS
由于年龄相同的振铃次数,我进口在.csv
这样的:
data, labels = load_csv("abalone.csv", categorical_labels=False, has_header=False)
任务是预测基于数据环的数量,所以我成立了这样我的输入层:
net = tflearn.input_data(shape=[None, 8])
添加四个隐藏层与默认线性激活函数:
net = tflearn.fully_connected(net, 320)
net = tflearn.fully_connected(net, 200)
net = tflearn.fully_connected(net, 200)
net = tflearn.fully_connected(net, 320)
并且与一个节点的输出层,因为仅存在一个结果(没有。环):
net = tflearn.fully_connected(net, 1, activation="sigmoid")
net = tflearn.regression(net)
现在我初始化模式,但在训练过程中出现上述错误发生:
model = tflearn.DNN(net)
model.fit(data, labels, n_epoch=1000, show_metric=True, batch_size=1600)
整个例外:
Traceback (most recent call last):
File "D:\OneDrive\tensornet.py", line 34, in <module>
model.fit(data, labels, n_epoch=1000, show_metric=True, batch_size=1600)
File "C:\Python3\lib\site-packages\tflearn\models\dnn.py", line 215, in fit
callbacks=callbacks)
File "C:\Python3\lib\site-packages\tflearn\helpers\trainer.py", line 333, in fit
show_metric)
File "C:\Python3\lib\site-packages\tflearn\helpers\trainer.py", line 774, in _train
feed_batch)
File "C:\Python3\lib\site-packages\tensorflow\python\client\session.py", line 767, in run
run_metadata_ptr)
File "C:\Python3\lib\site-packages\tensorflow\python\client\session.py", line 944, in _run
% (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (1600,) for Tensor 'TargetsData/Y:0', which has shape '(?, 1)'
据我了解,发生异常当试图用我的输出图层来贴合我的标签(1600x1张量)时。但我不知道如何解决这个问题。
感谢您的回答。但是,当我尝试这样做时,会出现另一个异常:TypeError:列表索引必须是整数或切片,而不是元组 –
您需要将列表更改为numpy数组,如下所示: labels = np.asarray(labels)[: ,np.newaxis] – mangate
啊,谢谢你,那工作。 –