Open easytrader opened 7 years ago
如果你后端使用tensorflow,需要reshape成input_shape=(28,28,1)
Hello @wepe,
我也遇上這個問題, 然後把 input_shape
改成 (28, 28, 1)
還是報錯,
在 stackoverflow 上面找到一個解法, 也可以正常運行
http://stackoverflow.com/a/39922419
大致是說, 把 ~/.keras/keras.json
的設定改為
{
"image_dim_ordering": "th",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
應該就行
Traceback (most recent call last): File "cnn.py", line 57, in
model.add(Convolution2D(4, 5, 5, border_mode='valid',input_shape=(1,28,28)))
File "/home/leo/anaconda2/lib/python2.7/site-packages/keras/models.py", line 276, in add
layer.create_input_layer(batch_input_shape, input_dtype)
File "/home/leo/anaconda2/lib/python2.7/site-packages/keras/engine/topology.py", line 370, in create_input_layer
self(x)
File "/home/leo/anaconda2/lib/python2.7/site-packages/keras/engine/topology.py", line 514, in call
self.add_inbound_node(inbound_layers, node_indices, tensor_indices)
File "/home/leo/anaconda2/lib/python2.7/site-packages/keras/engine/topology.py", line 572, in add_inbound_node
Node.create_node(self, inbound_layers, node_indices, tensor_indices)
File "/home/leo/anaconda2/lib/python2.7/site-packages/keras/engine/topology.py", line 149, in create_node
output_tensors = to_list(outbound_layer.call(input_tensors[0], mask=input_masks[0]))
File "/home/leo/anaconda2/lib/python2.7/site-packages/keras/layers/convolutional.py", line 466, in call
filter_shape=self.W_shape)
File "/home/leo/anaconda2/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py", line 1639, in conv2d
x = tf.nn.conv2d(x, kernel, strides, padding=padding)
File "/home/leo/anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/gen_nn_ops.py", line 394, in conv2d
data_format=data_format, name=name)
File "/home/leo/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 703, in apply_op
op_def=op_def)
File "/home/leo/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2312, in create_op
set_shapes_for_outputs(ret)
File "/home/leo/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1704, in set_shapes_for_outputs
shapes = shape_func(op)
File "/home/leo/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 246, in conv2d_shape
padding)
File "/home/leo/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 184, in get2d_conv_output_size
(row_stride, col_stride), padding_type)
File "/home/leo/anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 149, in get_conv_output_size
"Filter: %r Input: %r" % (filter_size, input_size))
ValueError: Filter must not be larger than the input: Filter: (5, 5) Input: (1, 28)