繁体   English   中英

TensorFlow / TFLearn:ValueError:无法为Tensor u'target / Y:0'提供形状值(64,),其形状为'(?,10)'

[英]TensorFlow/TFLearn: ValueError: Cannot feed value of shape (64,) for Tensor u'target/Y:0', which has shape '(?, 10)'

我一直在尝试使用tflearn和我自己的数据集执行回归。

使用tflearn我一直在尝试使用MNIST数据集实现基于示例的卷积网络。 我没有使用MNIST数据集,而是尝试用我自己的数据替换训练和测试数据。 我的数据是从csv文件中读取的,与MNIST数据的形状不同。 我有255个功能,代表15 * 15网格和目标值。 在示例中,我将行替换为24-30(并包含import numpy as np):

#read in train and test csv's where there are 255 features (15*15) and a target
csvTrain = np.genfromtxt('train.csv', delimiter=",")
X = np.array(csvTrain[:, :225]) #225, 15
Y = csvTrain[:,225]

csvTest = np.genfromtxt('test.csv', delimiter=",")
testX = np.array(csvTest[:, :225])
testY = csvTest[:,225]

#reshape features for each instance in to 15*15, targets are just a single number
X = X.reshape([-1,15,15,1])
testX = testX.reshape([-1,15,15,1])

## Building convolutional network
network = input_data(shape=[None, 15, 15, 1], name='input')

我收到以下错误:

ValueError:无法为Tensor u'target / Y:0'提供shape(64,)的值,其形状为'(?,10)'

我尝试了各种组合,并在stackoverflow中看到了类似的问题 ,但没有成功。 此页面中的示例对我不起作用并引发类似错误,我不理解提供的答案或类似问题提供的答案。

我如何使用自己的数据?

简短的回答

MNIST示例的第41行中,您还必须将network = fully_connected(network, 10, activation='softmax')的输出大小10更改为network = fully_connected(network, 1, activation='linear') 请注意,您可以删除最终的softmax。

看看你的代码,似乎你有一个目标值Y ,这意味着使用带有mean_squareL2损失 (你会在这里找到所有可用的损失):

regression(network, optimizer='adam', learning_rate=0.01,
                 loss='mean_square', name='target')

此外,重塑Y和Y_test以具有形状(batch_size,1)。


答案很长:如何分析错误并找到错误

以下是如何分析错误:

  • 错误是Cannot feed value ... for Tensor 'target/Y' Tensor'target Cannot feed value ... for Tensor 'target/Y' ,这意味着它来自feed_dict参数Y.
  • 同样,根据错误,您尝试提供of shape (64,)的Y值of shape (64,)而网络期望形状(?, 10)
    • 它需要一个形状(batch_size,10),因为它最初是MNIST的网络(10个类)
  • 我们现在想要为Y更改网络的预期值。
    • 在代码中,我们看到最后一层fully_connected(network, 10, activation='softmax')返回大小为10的输出
    • 我们将其更改为大小为1的输出而没有softmax: fully_connected(network, 1, activation='linear')

最后,它不是一个错误,而是一个错误的模型架构

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 TensorFlow / TFLearn:ValueError:无法为形状为((?,2)'的Tensor u'target / Y:0'输入形状(64,10)的值 Tensorflow / TFLearn-ValueError:无法为形状为((?,1)'的Tensor'target / Y:0'输入形状(64,)的值 TensorFlow / TFLearn -Architecture Err - 'ValueError:无法为Tensor u'TargetsData / Y:0'提供形状值(64,),其形状为'(?,1)' python tflearn-ValueError:无法为张量'TargetsData / Y:0'输入形状为((?,2)'的形状(10,250,250,3)的值 TensorFlow ValueError:无法为形状为“(?, 64, 64, 3)”的张量 u'Placeholder:0' 提供形状 (64, 64, 3) 的值 Tflearn,AxlexNet,ValueError:无法为Tensor u'InputData / X:0'输入形状为((?,227,227,3)'的形状(64,277,277,3)的值 Python Tflearn-ValueError:无法为张量u'InputData / X:0'输入形状为((?,2)'的形状(16,1)的值 Python,Keras-ValueError:无法为Tensor u'dense_2_target:0'输入形状为((?,?)'的形状(10,70,1025)的值 Tensorflow / Tflearn ValueError:无法为张量“输入/X:0”提供形状(4、11、11)的值,其形状为“(?、4、11、11)” ValueError:无法为具有形状“(?,1)”的张量“TargetsData / Y:0”提供形状(64,)的值
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM