我正在尝试使用tensorflow后端在keras中训练一个预训练的inceptionv3模型。
我有10,000张大小(299,299)图像的训练数据集(它们是灰度)。我将它转换为张量流的输入形状为(10000,299,299,1)。当我试图适应inceptionv3模型时,我收到错误
ValueError:检查输入时出错:期望input_1有形状(None,none,none,3)但是有形状的数组(10000,299,299,1)
我尝试使用
更改张量的输入形状input_tensor = Input(shape=(299,299,1))
base_model = InceptionV3(weights='imagenet',include_top=False,input_tensor = input_tensor)
我收到以下错误:
ValueError:两个形状中的尺寸0必须相等,但对于具有输入形状的“Assign_376”(op:'Assign'),它们是3和32:[3,3,1,32],[32,3,3 ,3]
有人可以帮我解决这个问题吗?我的数据集是灰度的。如何使用张量流后端在keras中输入灰度数据集到inceptionv3我很无能为力。
答案 0 :(得分:1)
如果您正在使用预先训练过的砝码,则不能简单地将深度更改为1并期望它能够正常工作。这是因为你的第一层卷积滤波器的深度为3.你可以参考这个post来了解可以做些什么。
该错误的含义是编辑后的第一层权重的形状为[3, 3, 1, 32]
,这意味着3x3卷积滤镜具有深度1和32组这些滤镜。但是,原始模型是[32, 3, 3, 3]
,这意味着3x3卷积过滤器具有深度3和32组这些过滤器。你必须在这里解决2个问题:
ValueError
。