为了账号安全,请及时绑定邮箱和手机立即绑定

ValueError:两个形状中的维度 2 必须相等,但分别为 512 和 511。

ValueError:两个形状中的维度 2 必须相等,但分别为 512 和 511。

白猪掌柜的 2023-12-09 17:03:53
我正在尝试构建用于图像分割的 Unet 卷积神经网络,但当我尝试使用输入数据编译模型时,收到形状不兼容的错误消息。print(x_data.shape)print(x_test.shape)print(y_data.shape)print(y_test.shape)>>(4, 767, 1022, 3)(4, 767, 1022, 3)(4, 767, 1022, 3)(4, 767, 1022, 3)>>>>model = sm.Unet('resnet34', classes=1, activation='sigmoid')model.compile(    'Adam',    loss=sm.losses.bce_jaccard_loss,    metrics=[sm.metrics.iou_score],)>>>>model.fit(   x=x_data,   y=y_data,   batch_size=16,   epochs=100,   validation_data=(x_test, y_test),)>>Epoch 1/100---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)<ipython-input-27-6cf659e4ef4f> in <module>()      4    batch_size=16,      5    epochs=100,----> 6    validation_data=(x_test, y_test),      7 )10 frames/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)    971           except Exception as e:  # pylint:disable=broad-except    972             if hasattr(e, "ag_error_metadata"):--> 973               raise e.ag_error_metadata.to_exception(e)    974             else:    975               raise当我已经检查了所有输入形状是否匹配时,问题到底是什么?忽略了什么以及如何解决?我已经尝试过了import keraskeras.backend.set_image_data_format('channels_first')如此处所示https://github.com/titu1994/Image-Super-Resolution/issues/27,但问题仍然存在。使用谷歌 Colab。
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

有点晚了,但你的问题来自于输入宽度和高度不能被 32 整除;确保您使用的 UNet 值可以被 32 整除,您的问题就会得到解决。

您无需更改 Colab 环境或将通道顺序设置为channel_first


查看完整回答
反对 回复 2023-12-09
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信