我是一个初学者。我尝试了Tensorflow的图像分类,并得到了以下错误。我在网上发现了类似的问题,但我不明白。错误是什么意思?我应该怎么做?请给予我一些建议。我使用100个文件(png/15 pix,15 pix)作为样本图像。Tensorflow ver.2.0.0 / python ver.3.8.1 / Jupyter笔记本。
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)
无效参数错误:输入深度必须能被滤波器深度整除:函数调用堆栈:分布式函数
7条答案
按热度按时间cgyqldqp1#
如果模型如下所示:
将
input_shape
的值(在第一卷积层)从(150, 150, 3)
更改为(150, 150, 4)
。只将元组中的最后一个项(这里是3)替换为4,这样应该可以工作。
gwbalxhn2#
我想你读是一个4通道格式的图像。你应该在转发之前将输入图像转换为“RGB”。
nfs0ujit3#
我找到了答案!在我的情况下,下面的程序帮助它。
我也希望能帮到你谢谢。
hwamh0ep4#
我遇到这个错误是因为我使用已转换成灰阶的影像做为我的数据。如果有人正在执行这个动作,您可以从灰阶转换成彩色格式,或重新准备您的数据而不转换成灰阶,这就是我所做的。
根据我找到的解决方案:“也许您正尝试将灰度图像输入CNN,而CNN需要彩色图像。查找输入的形状,例如打印(模型.输入.形状)在Keras中,您可以得到例如(无、224、224、3),并且您的输入斑点必须具有相应的形状,因此,如果您拥有灰度图像,则必须将其转换为(正式)彩色图像(所有三个通道将是相同的)。然而,不要忘记,你还需要知道输入斑点的进一步方面-平均值,范围,偏差,...有一个很好的形状,它计算的东西,但不考虑这些方面,计算结果不好”
mzsu5hc05#
该错误是由于提供的输入的维度不匹配。模型要求输入的深度为“3”,但给定的深度为“4”。
xwmevbvl6#
如果出现
1 vs 3
错误,则是因为输入图像具有Grayscale
模式。我用的是这个代码:
为了解决该错误,我将模式更改为
rgb
mrphzbgm7#
另一件需要检查的事情是维度在输入中的定义顺序。如果你在错误信息中得到类似
3 vs 256
的信息,你的图像可能是作为(3, 256, 256)
数组加载的,但是你的输入应该是(256, 256, 3)