首页 文章

如何在keras中输入形状张量(10000,299,299,1)到inceptionv3模型?

提问于
浏览
0

我正在尝试使用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 ] .

有人可以帮我解决这个问题吗?我的数据集是灰度的 . 如何使用tensorflow后端在keras中输入灰度数据集到inceptionv3我很无能为力 .

1 回答

  • 1

    如果您只是将深度更改为1并期望它能够正常工作 . 这是因为你的第一层卷积滤波器的深度为3.你可以参考这个post来了解可以做些什么 .

    该错误的含义是编辑后的第一层权重具有 [3, 3, 1, 32] 的形状,这意味着具有深度1和32组这些滤波器的3x3卷积滤波器 . 然而,原始模型是 [32, 3, 3, 3] ,这意味着3x3卷积滤波器具有深度3和32组这些滤波器 . 你必须在这里解决2个问题:

    • 将深度更改为3并在此之前添加另一个图层以处理深度1,或者参考上面引用的帖子以获取解决此问题的一些选项 .

    • 确保权重的形状以相同的方式编制索引 . 您的 ValueError 有一些索引问题 .

相关问题