Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TensorFlow/TFLearn:ValueError:无法为Tensor u'输入形状(64,)的值;目标/Y:0';,其形状为';(?,10)和#x27;_Python_Tensorflow_Deep Learning - Fatal编程技术网

Python TensorFlow/TFLearn:ValueError:无法为Tensor u'输入形状(64,)的值;目标/Y:0';,其形状为';(?,10)和#x27;

Python TensorFlow/TFLearn:ValueError:无法为Tensor u'输入形状(64,)的值;目标/Y:0';,其形状为';(?,10)和#x27;,python,tensorflow,deep-learning,Python,Tensorflow,Deep Learning,我一直在尝试使用和我自己的数据集执行回归 使用tflearn,我一直在尝试使用MNIST数据集实现一个卷积网络。我没有使用MNIST数据集,而是尝试用自己的数据集替换培训和测试数据。我的数据是从csv文件中读取的,与MNIST数据的形状不同。我有255个特征,它们代表一个15*15的网格和一个目标值。在示例中,我将第24-30行替换为(并将import numpy包括为np): 我得到以下错误: ValueError:无法为张量u'目标/Y:0'输入形状(64,)的值, 它的形状是“(?,10)

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

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

我得到以下错误:

ValueError:无法为张量u'目标/Y:0'输入形状(64,)的值, 它的形状是“(?,10)”

我尝试了各种组合,并在stackoverflow中看到了一个成功的例子,但没有成功。本页中的示例不适用于我,并引发类似错误,我不理解提供的答案或类似问题提供的答案

如何使用自己的数据?

简短回答 在的第41行中,您还必须将
network=fully_connected(网络,10,activation='softmax')
中的输出大小10更改为1,以
network=fully_connected(网络,1,activation='linear')
。请注意,您可以删除最终的softmax

查看您的代码,您似乎有一个目标值
Y
,这意味着将L2损失
均方
一起使用(您将找到所有可用的损失):

此外,重塑Y和Y_测试以获得形状(批次大小,1)


详细回答:如何分析错误并找出错误 以下是如何分析错误:

  • 错误是
    无法输入值。。。对于张量'target/Y'
    ,这意味着它来自于feed\u dict参数Y
  • 同样,根据错误,您尝试输入shape(64,)的Y值
    ,而网络希望输入shape
    (?,10)
    • 它需要一个形状(批量大小,10),因为它最初是MNIST的网络(10个类)
  • 我们现在要更改网络的预期值Y。
    • 在代码中,我们看到最后一层
      完全连接(网络,10,activation='softmax')
      返回大小为10的输出
    • 我们将其更改为不带softmax的大小为1的输出:
      完全连接(网络,1,激活='linear')

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

太好了,非常感谢您给出了如此详细的答案。希望它能起作用,希望下次您能理解两年后TensorFlow的错误消息(我必须承认相当复杂),并且@OlivierMoindrot您不知道我有多感激!
#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')
regression(network, optimizer='adam', learning_rate=0.01,
                 loss='mean_square', name='target')