gpt4 book ai didi

machine-learning - Keras - 使用卷积网络形状不匹配

转载 作者:行者123 更新时间:2023-11-30 09:07:22 26 4
gpt4 key购买 nike

我通过以下方式构建了我的 keras 模型(这当然不是最终的生产就绪模型):

self.model = Sequential()        
self.model.add(Conv2D(32, (3, 3), input_shape=(674, 514, 1), padding='same',
activation='relu'))
self.model.compile(loss='mean_squared_error', optimizer='adam', metrics=
['accuracy'])

模型摘要为:

_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 674, 514, 32) 320
=================================================================
Total params: 320
Trainable params: 320
Non-trainable params: 0
_________________________________________________________________

我尝试通过以下方式适应它:

self.model.fit(self.input_images, self.output_images, batch_size=32, 
epochs=10, verbose=1, shuffle=True)

训练输入和输出的形状(self.input_images, self.output_images)均为(100, 674, 514, 1)

当我尝试训练模型时,出现以下异常:

ValueError: Error when checking target: expected conv2d_1 to have shape 
(674, 514, 32) but got array with shape (674, 514, 1)

非常感谢任何帮助。

最佳答案

与您的 output_images 不匹配。卷积层的结果是(None, 674, 514, 32),因为它有32个滤波器。损失mean_squared_error告诉keras期望一个兼容的标签形状(所提供的output_images不是)。

模型尚未完成,通常 CNN 有许多卷积层和下采样层,因此输出形状会有所不同。但如果您愿意,可以通过将过滤器数量更改为 1 来使此模型工作...

Conv2D(1, ...)

...或者将 output_images 设为形状 (100, 674, 514, 32) 的张量。

关于machine-learning - Keras - 使用卷积网络形状不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48693024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com