首页 > 解决方案 > UnimplementedError: Fused conv implementation 目前不支持分组卷积

问题描述

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

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)

我收到以下错误:

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

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

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

标签: tensorflowkerasdeep-learningconv-neural-network

解决方案


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


推荐阅读