简体   繁体   English

ValueError:尺寸必须相等,输入形状

[英]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"


Layer (type) Output Shape Param #层(类型)Output 形状参数 #

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


activation_23 (Activation) (None, 10) 0 activation_23(激活)(无,10)0

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.

相关问题 ValueError: Dimensions must be equal, but are 244 and 15 .... input shape: [?,244], [?,15] - ValueError: Dimensions must be equal, but are 244 and 15 ....... input shapes: [?,244], [?,15] Keras ValueError:尺寸必须相等,但对于具有输入形状的“{{node Equal}}”,尺寸为 9 和 400:[?,9], [?,300,400] - Keras ValueError: Dimensions must be equal, but are 9 and 400 for '{{node Equal}}' with input shapes: [?,9], [?,300,400] ValueError:尺寸必须相等,但对于输入形状为 [?,3]、[?,3072] 的“loss/output_1_loss/mul”(操作:“Mul”),尺寸为 3 和 3072 - ValueError: Dimensions must be equal, but are 3 and 3072 for 'loss/output_1_loss/mul' (op: 'Mul') with input shapes: [?,3], [?,3072] ValueError:尺寸必须相等,但输入形状为[?,64],[4 ,?]的'MatMul'(op:'MatMul')的尺寸必须为64和4 - ValueError: Dimensions must be equal, but are 64 and 4 for 'MatMul' (op: 'MatMul') with input shapes: [?,64], [4,?] ValueError:尺寸必须相等,但对于'Mul'(op:'Mul'),输入形状为784和500:[?,784],[784,500] - ValueError: Dimensions must be equal, but are 784 and 500 for 'Mul' (op: 'Mul') with input shapes: [?,784], [784,500] ValueError:尺寸必须相等,但对于'MatMul_1'(op:'MatMul'),输入形状为784和500:[?,784],[500,500] - ValueError: Dimensions must be equal, but are 784 and 500 for 'MatMul_1' (op: 'MatMul') with input shapes: [?,784], [500,500] ValueError:尺寸必须相等,但对于具有输入形状的“mul_18”(操作:“Mul”)为 2 和 80:[?,?,?,5,2], [?,?,?,5,80] - ValueError: Dimensions must be equal, but are 2 and 80 for 'mul_18' (op: 'Mul') with input shapes: [?,?,?,5,2], [?,?,?,5,80] ValueError:尺寸必须相等,但对于具有输入形状的'Conv2D'(op:'Conv2D'),尺寸必须为1和3:[1,400,400,1],[1,3,3,1] - ValueError: Dimensions must be equal, but are 1 and 3 for 'Conv2D' (op: 'Conv2D') with input shapes: [1,400,400,1], [1,3,3,1] ValueError:尺寸必须相等,但对于输入形状为 [?,13]、[?,13,3076] 的“loss/dense_1_loss/mul”(操作:“Mul”),尺寸必须是 13 和 3076 - ValueError: Dimensions must be equal, but are 13 and 3076 for 'loss/dense_1_loss/mul' (op: 'Mul') with input shapes: [?,13], [?,13,3076] ValueError:尺寸必须相等,但对于具有输入形状的“p_softmax/truediv”(操作:“RealDiv”)为 3 和 300:[?,300,300,3]、[?,300,300] - ValueError: Dimensions must be equal, but are 3 and 300 for 'p_softmax/truediv' (op: 'RealDiv') with input shapes: [?,300,300,3], [?,300,300]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM