首页 > 解决方案 > Keras:IndexError:元组索引超出范围 - Conv2D

问题描述

我是 Keras 和 Tensorflow 的新手。我正在尝试运行一些基于 Keras 和 Tensorflow 的特定代码。在该代码中,我从 tfrecordes 文件中准备了数据集并使用 重塑它tf.reshape(image, [32, 32, 3]),在我的模型中,我需要在此图像输出上应用 Conv2D 层,我使用 Keras,在下面的代码中:

# Image
x = k.layers.Input(shape=input_shape,tensor=img)
# ReLU Conv1
conv1 = k.layers.Conv2D(filters = 256, kernel_size = 9, strides=1,padding='valid', activation='relu', name='conv1')(x)

问题是,当我运行代码时,我收到了这个错误:

self.kernel_size[i], IndexError: 元组索引超出范围

所以,经过多次搜索,我发现这个错误可以通过将 Keras 版本从 2.2 更改为 1.2 来修复。我这样做但实际上,我必须更改我的所有代码,有没有人可以在不使用 Keras 1.2 的情况下仅在 Keras 2.2 中修复此错误?

标签: pythontensorflowkeras

解决方案


我认为你需要一个 9 * 9 的内核。更改kernel_size=9为已kernel_size=( 9 , 9 ) 编辑的代码行:

conv1 = k.layers.Conv2D(filters = 256, kernel_size = ( 9 , 9 ), strides=1,padding='valid', activation='relu', name='conv1')(x)

推荐阅读