[英]ValueError: Dimensions must be equal, with input shapes
I have written this code.我已经写了这段代码。 My input shape is (100 x100 X3).我的输入形状是(100 x100 X3)。 I am new to deep learning.我是深度学习的新手。 I have spent so much time on this, but couldn't resolve the issue.我花了很多时间在这上面,但无法解决这个问题。 Any help is highly appreciated.非常感谢任何帮助。
init = tf.random_normal_initializer(mean=0.0, stddev=0.05, seed=None)
input_image=Input(shape=image_shape)
# input: 100x100 images with 3 channels -> (3, 100, 100) tensors.
# this applies 32 convolution filters of size 3x3 each.
model=Sequential()
model.add(Conv2D(filters=16, kernel_size=(3, 3),kernel_initializer=init,
padding='same', input_shape=(3,100,100)))
model.add(Activation('relu'))
model.add(Conv2D(filters=32,kernel_size=(3, 3),padding="same"))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2),padding="same"))
model.add(Dropout(0.25))
model.add(Conv2D(filters=32,kernel_size=(3, 3),padding="same"))
model.add(Activation('relu'))
model.add(Conv2D(filters=32, kernel_size=(3, 3),padding="same"))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2),padding="same"))
model.add(Dropout(0.25))
model.add(Flatten())
# Note: Keras does automatic shape inference.
model.add(Dense(256))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(10))
model.add(Activation('softmax'))
model.summary()
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
len(model.weights)
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
Error: In [15]: runfile('/user/Project/SM/src/ann_algo_keras.py', wdir='/user/Project/SM/src') Random starting synaptic weights: Model: "sequential_3"错误:在 [15] 中:runfile('/user/Project/SM/src/ann_algo_keras.py', wdir='/user/Project/SM/src') 随机起始突触权重:Model: "sequential_3"
conv2d_12 (Conv2D) (None, 3, 100, 16) 14416 conv2d_12 (Conv2D) (无, 3, 100, 16) 14416
activation_18 (Activation) (None, 3, 100, 16) 0 activation_18(激活)(无,3,100,16)0
conv2d_13 (Conv2D) (None, 3, 100, 32) 4640 conv2d_13 (Conv2D) (无, 3, 100, 32) 4640
activation_19 (Activation) (None, 3, 100, 32) 0 activation_19(激活)(无、3、100、32)0
max_pooling2d_6 (MaxPooling2 (None, 2, 50, 32) 0 max_pooling2d_6 (MaxPooling2 (无, 2, 50, 32) 0
dropout_9 (Dropout) (None, 2, 50, 32) 0 dropout_9(辍学)(无,2,50,32)0
conv2d_14 (Conv2D) (None, 2, 50, 32) 9248 conv2d_14 (Conv2D) (无, 2, 50, 32) 9248
activation_20 (Activation) (None, 2, 50, 32) 0 activation_20(激活)(无,2,50,32)0
conv2d_15 (Conv2D) (None, 2, 50, 32) 9248 conv2d_15 (Conv2D) (无, 2, 50, 32) 9248
activation_21 (Activation) (None, 2, 50, 32) 0 activation_21(激活)(无,2,50,32)0
max_pooling2d_7 (MaxPooling2 (None, 1, 25, 32) 0 max_pooling2d_7 (MaxPooling2 (无, 1, 25, 32) 0
dropout_10 (Dropout) (None, 1, 25, 32) 0 dropout_10(辍学)(无,1,25,32)0
flatten_3 (Flatten) (None, 800) 0 flatten_3(展平)(无,800)0
dense_6 (Dense) (None, 256) 205056 dense_6(密集)(无,256)205056
activation_22 (Activation) (None, 256) 0 activation_22(激活)(无,256)0
dropout_11 (Dropout) (None, 256) 0 dropout_11(辍学)(无,256)0
dense_7 (Dense) (None, 10) 2570 dense_7(密集)(无,10)2570
Total params: 245,178 Trainable params: 245,178 Non-trainable params: 0总参数:245,178 可训练参数:245,178 不可训练参数:0
Epoch 1/2000 Traceback (most recent call last): Epoch 1/2000 Traceback(最近一次通话最后一次):
File "/user/Project/SM/src/ann_algo_keras.py", line 272, in train(inputs,outputs,image_shape)文件“/user/Project/SM/src/ann_algo_keras.py”,第 272 行,在 train(inputs,outputs,image_shape)
File "/user/Project/SM/src/ann_algo_keras.py", line 204, in train model.fit(X_train, y_train, batch_size, epochs, validation_data=(X_test, y_test), use_multiprocessing=True)文件“/user/Project/SM/src/ann_algo_keras.py”,第 204 行,在火车 model.fit(X_train, y_train, batch_size, epochs, validation_data=(X_test, y_test), use_multiprocessing=True)
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 108, in _method_wrapper return method(self, *args, **kwargs) _method_wrapper 返回方法中的文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py”,第 108 行(self,*args,**kwargs)
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 1098, in fit tmp_logs = train_function(iterator)文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py”,第 1098 行,适合 tmp_logs = train_function(iterator)
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 780, in call result = self._call(*args, **kwds)文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py”,第 780 行,调用结果 = self._call(*args, **kwds)
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 823, in _call self._initialize(args, kwds, add_initializers_to=initializers) _call self._initialize(args, kwds, add_initializers_to=initializers) 中的文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py”,第 823 行
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 696, in _initialize self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py”,第 696 行,_initialize self._stateful_fn._get_concrete_function_internal_garbage_collected(#pylint: disable=protected-access
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2855, in _get_concrete_function_internal_garbage_collected graph_function, _, _ = self._maybe_define_function(args, kwargs)文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py”,第 2855 行,在 _get_concrete_function_internal_garbage_collected graph_function, _, _ = self._maybe_define_function(args, kwargs)
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 3213, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) _maybe_define_function graph_function = self._create_graph_function(args, kwargs) 中的文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py”,第 3213 行
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 3065, in _create_graph_function func_graph_module.func_graph_from_py_func( _create_graph_function func_graph_module.func_graph_from_py_func(
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py", line 986, in func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs)文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py”,第 986 行,在 func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs)
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 600, in wrapped_fn return weak_wrapped_fn().文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py”,第 600 行,在 Wrapped_fn 返回weak_wrapped_fn()。 wrapped (*args, **kwds)包装(*args,**kwds)
File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py", line 973, in wrapper raise e.ag_error_metadata.to_exception(e)包装器中的文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py”,第 973 行引发 e.ag_error_metadata.to_exception(e)
ValueError: in user code: ValueError:在用户代码中:
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:806 train_function *
return step_function(self, iterator)
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:796 step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/distribute/distribute_lib.py:1211 run
return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
/home/catherin/.local/lib/python3.8/site-packages/tensorflow/python/distribute/distribute_lib.py:2585 call_for_each_replica
return self._call_for_each_replica(fn, args, kwargs)
/home/catherin/.local/lib/python3.8/site-packages/tensorflow/python/distribute/distribute_lib.py:2945 _call_for_each_replica
return fn(*args, **kwargs)
/home/catherin/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:789 run_step **
outputs = model.train_step(data)
/home/catherin/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:748 train_step
loss = self.compiled_loss(
/home/catherin/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/compile_utils.py:204 __call__
loss_value = loss_obj(y_t, y_p, sample_weight=sw)
/home/catherin/.local/lib/python3.8/site-packages/tensorflow/python/keras/losses.py:149 __call__
losses = ag_call(y_true, y_pred)
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/losses.py:253 call **
return ag_fn(y_true, y_pred, **self._fn_kwargs)
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201 wrapper
return target(*args, **kwargs)
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/losses.py:1195 mean_squared_error
return K.mean(math_ops.squared_difference(y_pred, y_true), axis=-1)
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/gen_math_ops.py:10398 squared_difference
_, _, _op, _outputs = _op_def_library._apply_op_helper(
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/op_def_library.py:742 _apply_op_helper
op = g._create_op_internal(op_type_name, inputs, dtypes=None,
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py:591 _create_op_internal
return super(FuncGraph, self)._create_op_internal( # pylint: disable=protected-access
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/ops.py:3477 _create_op_internal
ret = Operation(
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/ops.py:1974 __init__
self._c_op = _create_c_op(self._graph, node_def, inputs,
/home/user/.local/lib/python3.8/site-packages/tensorflow/python/framework/ops.py:1815 _create_c_op
raise ValueError(str(e))
ValueError: Dimensions must be equal, but are 10 and 10000 for '{{node mean_squared_error/SquaredDifference}} = SquaredDifference[T=DT_FLOAT](sequential_3/activation_23/Softmax, IteratorGetNext:1)' with input shapes: [?,10], [?,1,10000].
Just a mix up with the position of the channels in the input shape.只需与输入形状中通道的 position 混合即可。 In Keras the input shape should be HxWxC
and not CxHxW
as in PyTorch.在 Keras 中,输入形状应为HxWxC
,而不是CxHxW
中的 CxHxW。
model.add(Conv2D(filters=16, kernel_size=(3, 3),kernel_initializer=init,
padding='same', input_shape=(100,100,3)))
Your input is not in correct order, channels should be at last.您的输入顺序不正确,频道应该是最后的。 So,所以,
model.add(Conv2D(filters=16, kernel_size=(3, 3),kernel_initializer=init,
padding='same', input_shape=(100,100,3)))
Also I assume you are trying to make a classification.我还假设您正在尝试进行分类。 Also some metrics are for regression, such as 'mae'.还有一些指标用于回归,例如“mae”。 You can change them as:您可以将它们更改为:
model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.