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

InvalidArgumentError:输入深度必须能被过滤器深度整除:4 vs 3

InvalidArgumentError:输入深度必须能被过滤器深度整除:4 vs 3

慕婉清6462132 2022-07-26 16:52:45
我是初学者。我尝试通过 Tensorflow 进行图像分类,并得到以下错误。我在网上找到了类似的问题,但我无法理解。错误是什么意思?我该怎么做呢?请给我一些建议。我使用 100 个文件(png/15pix、15pix)作为示例图像。Tensorflow ver.2.0.0 / python ver.3.8.1 / Jupyter notebook。示例图像    num_epochs = 30    steps_per_epoch = round(num_train)//BATCH_SIZE    val_steps = 20    history = model.fit(train_data.repeat(),                epochs=num_epochs,                steps_per_epoch = steps_per_epoch,                validation_data=val_data.repeat(),                 validation_steps=val_steps)InvalidArgumentError:输入深度必须被过滤器深度整除:4 vs 3 [[nodesequential_2/mobilenetv2_1.00_96/Conv1/Conv2D(定义在 C:\Users\XXXXX\Anaconda3\lib\site-packages\tensorflow_core\python\framework \ops.py:1751) ]] [Op:__inference_distributed_function_42611] 函数调用堆栈:distributed_function
查看完整描述

5 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

我遇到了这个错误,因为我使用已转换为灰度的图像作为我的数据。如果有人这样做,您可以从灰度转换为彩色格式,或者在不转换为灰度的情况下重新准备数据,这就是我所做的。

根据我找到的解决方案:“也许你正试图将灰度图像输入 CNN,它需要一个彩色图像。在 Keras 中找到输入的形状,例如 print(model.input.shape),你会得到例如 (None, 224, 224 , 3) 并且您的输入 blob 必须具有相应的形状,因此对于灰度图像,您必须将其转换为(正式)彩色图像(所有三个通道都将相同)。但是,不要忘记您还需要知道输入 blob 的其他方面 - 均值、范围、偏差……具有良好的形状,它会计算一些东西,但如果不考虑这些方面,计算的结果就不好”


查看完整回答
反对 回复 2022-07-26
?
陪伴而非守候

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

我找到了答案!就我而言,以下程序帮助了它。

XXX = tf.convert_to_tensor(XXX[:,:,:3])

我希望它也能帮助你。谢谢你。


查看完整回答
反对 回复 2022-07-26
?
UYOU

TA贡献1878条经验 获得超4个赞

如果您的模型如下所示:


model = tf.keras.Sequential([

tf.keras.layers.Conv2D(16, (3, 3), activation = 'relu', input_shape = (150, 150, 3)),

tf.keras.layers.MaxPooling2D(2, 2),

tf.keras.layers.Conv2D(32, (3, 3), activation = 'relu'),

tf.keras.layers.MaxPooling2D(2, 2),

tf.keras.layers.Flatten(),

tf.keras.layers.Dense(512, activation = 'relu'),

tf.keras.layers.Dense(10, activation = 'softmax')

])

将input_shape(在第一个卷积层)的值从(150, 150, 3)更改为(150, 150, 4)。


仅将元组中的最后一项(此处为 3)替换为 4。这应该可以正常工作。


查看完整回答
反对 回复 2022-07-26
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

我认为您阅读了 4 通道格式的图像。您应该在转发之前将输入图像转换为“RGB”。



查看完整回答
反对 回复 2022-07-26
?
米脂

TA贡献1836条经验 获得超3个赞

该错误是由于所提供输入的尺寸不匹配造成的。该模型要求输入的深度为“3”,但给出的深度为“4”。



查看完整回答
反对 回复 2022-07-26
  • 5 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号