python - 如何在 Keras 中设置适当的模型输入形状

标签 python tensorflow keras conv-neural-network loss-function

我是 Keras 的新手。我正在玩 Keras 以获得一些直觉并坚持在这里。

input_image = tf.keras.Input(shape=(16,16,3))
x = tf.keras.layers.Conv2D(32,(3,3), padding = 'same')(input_image)
model = tf.keras.Model(input_image , x)

model.compile(optimizer='Adam',loss = 'MSE')

inputs = np.random.normal(size = (16,16,3))
outputs = np.random.normal(size = (16,16,32))
model.fit(x = inputs , y =outputs)
我只是想看看 model.summary 说的输出形状 (None, 16, 16, 32)。但现在我有两个问题。一个是输出形状,另一个是我的代码不起作用的原因。我希望有人告诉我我错过了什么。谢谢~

最佳答案

inputs = np.random.normal(size = (1,16,16,3)) #<---- here
outputs = np.random.normal(size = (1,16,16,32)) #<---here
它们的形状应该是 4D 而不是 3D。您还需要提供批次的详细信息。(batch_size, w,h,c) <---- 4D
您失踪了 batch_size32,(3,3)来自 tf.keras.layers.Conv2D(32,(3,3), padding = 'same')(input_image)您有 32 个过滤器。所以 channel 深度将为 32。但由于您使用了 padding='same',因此您的输出将与输入具有相同的维度。只是深度不同。

关于python - 如何在 Keras 中设置适当的模型输入形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63185752/

相关文章:

Python - 将 CSV 转换为对象 - 代码设计

python - 如何向量化多维 numpy 数组中的提取

python - AttributeError : 'Tensor' object has no attribute 'lower' when applying Global MaxPooling instead of GlobalAveragePooling [duplicate]

python - 验证屏幕名称是否存在

python - 使用递归的方法

c++ - C++ API 中的 Tensorflow 加载模型并出现 "from device: CUDA_ERROR_OUT_OF_MEMORY"错误

python - BasicRNNCell 偏差没有得到训练

python - 在 Tensorflow 中,如何将张量/数组添加到已包含多个张量/数组的张量/数组中。 tf.concat 和 st.stack 需要相同的形状

tensorflow - 卷积层滤波器大小如何影响输入长度以及如何保持标签大小相同

python - 如何正确塑造我的神经网络模型的数据?