我在使用一个卷积神经网络跑自己的图片的,然后进行分类.这个卷积神经网络原来是跑mnist手写字的.报一下错误:InvalidArgumentError (see above for traceback): Input to reshape is a tensor with 49152 values, but the requested shape requires a multiple of 3136
mnist手写字输入大小为2828,我的图片大小为12896.
我猜想是自己的图片和mnist图片大小不一样造成的,那么出现错误的地方就会在全连接层的地方,查看网络的全连接层后发现了错误,进行改正.
全连接层代码如下
全连接层的w_fc1.shape=7764,1024
7764=3136
我的图片为128*96,经过两层卷积之后大小变为49152,所以报以上错误
with tf.variable_scope("fc1"):
#全连接层,输出为1024维的向量
W_fc1 = weight_variable([7 * 7 * 64, 1024])
b_fc1 = bias_variable([1024])
h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)
修改后的代码:
with tf.variable_scope("fc1"):
#全连接层,输出为1024维的向量
W_fc1 = weight_variable([49152, 1024])
b_fc1 = bias_variable([1024])
h_pool2_flat = tf.reshape(h_pool2, [-1, 49152])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)