我现在正在搜索代码中的错误。我想用 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.Sequence
向 fit()
提供数据。我尝试了不同的批量大小,但即使批量大小为 1,Python 也会返回分段错误。此外,我尝试在 GPU 和 CPU 上运行我的代码。