Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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 ValueError:对于输入形状,尺寸必须相等_Python_Python 3.x_Django_Tensorflow_Keras - Fatal编程技术网

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

Python ValueError:对于输入形状,尺寸必须相等,python,python-3.x,django,tensorflow,keras,Python,Python 3.x,Django,Tensorflow,Keras,我已经写了这段代码。我的输入形状是(100 x100 X3)。我对深度学习还不熟悉。 我在这方面花了太多时间,但无法解决问题。非常感谢您的帮助 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.

我已经写了这段代码。我的输入形状是(100 x100 X3)。我对深度学习还不熟悉。 我在这方面花了太多时间,但无法解决问题。非常感谢您的帮助

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"])
错误: 在[15]中:运行文件('/user/Project/SM/src/ann_algo_keras.py',wdir='/user/Project/SM/src') 随机起始突触重量: 型号:“顺序_3”


图层(类型)输出形状参数# conv2d_12(conv2d)(无、3100、16)14416


激活18(激活)(无、3100、16)0


conv2d_13(conv2d)(无、3100、32)4640


激活19(激活)(无、3100、32)0


最大池2D池6(最大池2(无、2、50、32)0


辍学9(辍学)(无、2、50、32)0


conv2d_14(conv2d)(无、2、50、32)9248


激活20(激活)(无、2、50、32)0


conv2d_15(conv2d)(无、2、50、32)9248


激活21(激活)(无、2、50、32)0


最大池2D池7(最大池2(无、1、25、32)0


辍学10(辍学)(无、1、25、32)0


展平3(展平)(无,800)0


密集型_6(密集型)(无,256)205056


激活22(激活)(无,256)0


辍学11(辍学)(无,256)0


密集型_7(密集型)(无,10)2570


激活23(激活)(无,10)0 总参数:245178 可培训参数:245178 不可训练参数:0


纪元1/2000 回溯(最近一次呼叫最后一次):

文件“/user/Project/SM/src/ann_algo_keras.py”,第272行,在 列车(输入、输出、图像形状)

文件“/user/Project/SM/src/ann_algo_keras.py”,第204行,列车中 模型.fit(X_序列、y_序列、批量大小、年代、验证数据=(X_测试、y_测试),使用多处理=真)

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/keras/engine/training.py”,第108行,在方法包装中 返回方法(self、*args、**kwargs)

文件“/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py”,第1098行,适合 tmp_logs=训练函数(迭代器)

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/eager/def_function.py”,第780行,在调用中 结果=自身调用(*args,**kwds)

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/eager/def_function.py”,第823行,在调用中 self.\u初始化(参数、KWD、添加初始值设定项到=初始值设定项)

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/eager/def_function.py”,第696行,在 self._stateful_fn._get_concrete_function_internal_garbage_collected(#pylint:disable=protected access

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/eager/function.py”,第2855行,位于“获取”\u具体”\u函数\u内部\u垃圾收集 图函数,自我,可能定义函数(args,kwargs)

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/eager/function.py”,第3213行,在函数定义中 graph\u function=self.\u create\u graph\u function(args,kwargs)

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/eager/function.py”,第3065行,在创建图形函数中 func_graph_module.func_graph_from_py_func(

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/framework/func_graph.py”,第986行,在func_graph_中,从_py_func开始 func_outputs=python_func(*func_args,**func_kwargs)

文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/eager/def_function.py”,第600行,包装为 返回弱包装的(包装的(*args,**kwds)

包装器中的文件“/home/user/.local/lib/python3.8/site packages/tensorflow/python/framework/func_graph.py”,第973行 将e.ag\u错误\u元数据引发到\u异常(e)

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].

只是与输入形状中通道的位置混淆。在Keras中,输入形状应为
HxWxC
,而不是像PyTorch中那样的
CxHxW

model.add(Conv2D(filters=16, kernel_size=(3, 3),kernel_initializer=init,
                        padding='same', input_shape=(100,100,3)))

只是与输入形状中通道的位置混淆。在Keras中,输入形状应为
HxWxC
,而不是像PyTorch中那样的
CxHxW

model.add(Conv2D(filters=16, kernel_size=(3, 3),kernel_initializer=init,
                        padding='same', input_shape=(100,100,3)))

你的输入顺序不正确,通道应该是正确的。所以

model.add(Conv2D(filters=16, kernel_size=(3, 3),kernel_initializer=init,
                        padding='same', input_shape=(100,100,3)))
此外,我假设您正在尝试进行分类。此外,一些指标用于回归,例如“mae”。您可以将其更改为:

model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])

你的输入顺序不正确,通道应该是正确的。所以

model.add(Conv2D(filters=16, kernel_size=(3, 3),kernel_initializer=init,
                        padding='same', input_shape=(100,100,3)))
此外,我假设您正在尝试进行分类。此外,一些指标用于回归,例如“mae”。您可以将其更改为:

model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])

谢谢,我的输入是shape[“batch shape”,3100100],但是在运行时,我得到了这个错误“ValueError:input 0 of layer sequential_2与layer不兼容:输入形状的轴-1应该有值3,但收到的输入是shape[None,3,100,100]”你能帮帮我吗out@caty数据的形状需要是
[“batch shape”,100100,3]
。谢谢,我的输入是形状[“batch shape”,3100100],但是在运行时,我得到了这个错误“ValueError:layer sequential_2的输入0与layer不兼容:输入形状的轴-1应具有值3,但接收到带有形状[None,3,100,100]的输入”您能帮助我吗out@caty数据的形状需要是
[“批处理形状”,100100,3]