无法为Tensor'TargetsData / Y:0'提供形状值(1600,),其形状为'(?,1)'

时间:2017-04-05 12:47:48

标签: python csv tensorflow tflearn

我正在尝试进入机器学习,我决定开始使用tflearn。 我使用了tflearn的快速入门指南来获取基础知识并尝试使用该神经网络完成我自己设置的任务: 从其尺寸预测鲍鱼的年龄。为此,我从UCI存储库下载了相应的数据集order。该表格采用以下格式:

SEX | LENGTH |直径|高度|全重量|重量| VISCERA重量|壳重量|戒指

由于年龄与响铃次数相同,我导入了.csv,如下所示:

.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)

据我所知,尝试使用我的输出层调整我的标签(1600x1 Tensor)时会发生异常。但我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

您需要在标签上添加另一个轴,以便它们具有(1600,1)形状而不是(1600,)

最简单的方法就是这样:

 labels = labels[:, np.newaxis]