Keras 中的时间分布式层产生分段错误

时间:2021-01-27 17:37:15

标签: python tensorflow keras

我现在正在搜索代码中的错误。我想用 keras 在 python 中编写一个 TimeDitributed NN 来对图像序列进行分类。因此我写了这段代码:

    def create_rgb_model(self):

        x = Input(shape=((4,) + VIDEO_SHAPE + (3,)))

        base_model = mobilenet.MobileNet(weights='imagenet', include_top=False, input_shape=VIDEO_SHAPE+(3,))

        trainable = 9
        for layer in base_model.layers[:-trainable]:
            layer.trainable = False
        for layer in base_model.layers[-trainable:]:
            layer.trainable = True

        som = TimeDistributed(base_model)(x)
        som = TimeDistributed(GlobalMaxPooling2D())(som)
        som = GRU(64)(som)
        som = Dense(1024, activation='relu')(som)
        som = Dropout(0.3)(som)
        som = Dense(512, activation='relu')(som)
        som = Dropout(0.3)(som)
        som = Dense(128, activation='relu')(som)
        som = Dropout(0.3)(som)
        som = Dense(64, activation='relu')(som)
        som = Dense(self.num_classes, activation='softmax')(som)

        model = Model(inputs=x, outputs=som)

        model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'], run_eagerly=True)

        return model

我使用 keras.utils.Sequencefit() 提供数据。我尝试了不同的批量大小,但即使批量大小为 1,Python 也会返回分段错误。此外,我尝试在 GPU 和 CPU 上运行我的代码。

0 个答案:

没有答案