UnimplementedError:融合卷积实现目前不支持分组卷积

arg*_*ab0 9 deep-learning conv-neural-network keras tensorflow

我正在尝试构建一个 CNN 模型来使用 TU-Berlin数据集识别人体草图。我下载了 png zip 文件,将数据导入 Google Colab,然后将数据拆分到 train-test 文件夹中。这是模型:

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(filters = 64, kernel_size = (5,5),padding = 'Same', 
                 activation ='relu', input_shape = target_dims),
    tf.keras.layers.Conv2D(filters = 64, kernel_size = (5,5),padding = 'Same', 
                 activation ='relu'),
    tf.keras.layers.MaxPool2D(pool_size=(2,2)),
    tf.keras.layers.Dropout(0.25),

    tf.keras.layers.Conv2D(filters = 128, kernel_size = (3,3),padding = 'Same', 
                 activation ='relu'),
    tf.keras.layers.Conv2D(filters = 128, kernel_size = (3,3),padding = 'Same', 
                 activation ='relu'),
    tf.keras.layers.MaxPool2D(pool_size=(2,2), strides=(2,2)),
    tf.keras.layers.Dropout(0.25),

    tf.keras.layers.Conv2D(256, kernel_size=4, strides=1, activation='relu', padding='same'),
    tf.keras.layers.Conv2D(256, kernel_size=4, strides=2, activation='relu', padding='same'),
    tf.keras.layers.Dropout(0.25),

    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512, activation = "relu"),
    tf.keras.layers.Dropout(0.5),
    tf.keras.layers.Dense(n_classes, activation= "softmax")
])

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=["accuracy"])

model.fit_generator(train_generator, epochs=10, validation_data=val_generator)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

UnimplementedError:  Fused conv implementation does not support grouped convolutions for now.
     [[node sequential/conv2d/Relu (defined at <ipython-input-9-36d4624b896d>:1) ]] [Op:__inference_train_function_1358]

Function call stack:
train_function
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何可以解决此问题的帮助。谢谢你。

(PS - 我正在运行 Tensorflow 2.2.0 而没有 GPU)

小智 7

我有一个类似的错误,问题在于我的图像的通道数和我在模型中指定的通道数。因此,请检查图像的维数并检查输入形状中指定的值,确保它们相同


小智 7

只需提及color_mode="grayscale"目录中的流入并检查您的模型输入(height,width,1)


小智 6

我在使用面部表情识别数据集时遇到了同样的错误,这是我解决同样错误的方法。

据我了解,数据集是灰色的,当您使用ImageDataGeneratortensorflow 并flow_from_directory生成训练和验证集时,

需要根据数据集/图像将 color_mode 指定为灰度或 rgb,这里将是“灰度”,

在模型的第一层 Conv2D 中 input_shape 应该是

input_shape = (height, width, 1), 1 因为它的灰度。