问题描述
我正在训练RNN对三个不同的类别进行分类。因为第2类的准确性很高,所以我尝试先训练RNN来对其他两个类进行分类,保存模型,加载模型,冻结较低的图层,然后再次包括第2类进行训练。即使经过4个纪元的训练并冻结了所有图层,第2类的准确性仍然很高,而其他的则再次下降。
模型如下:
model = Sequential()
model.add(LSTM(64,return_sequences=True,input_shape=(data.X_train.shape[1],data.X_train.shape[2])))
model.add(Dropout(0.2))
model.add(LSTM(128,return_sequences=True))
model.add(Batchnormalization())
model.add(Dropout(0.2))
model.add(LSTM(128,return_sequences=True))
model.add(Batchnormalization())
model.add(Dropout(0.2))
model.add(LSTM(64,return_sequences=True))
model.add(Batchnormalization())
model.add(Dropout(0.2))
model.add(LSTM(32,return_sequences=True))
model.add(Batchnormalization())
model.add(Dropout(0.2))
model.add(LSTM(16,return_sequences=True))
model.add(Batchnormalization())
model.add(Dropout(0.2))
model.add(LSTM(8,return_sequences=True))
model.add(Batchnormalization())
model.add(Dropout(0.2))
model.add(LSTM(4))
model.add(Dense(data.y_test.shape[1],activation='softmax'))
加载和冻结前四层:
model = load_model(model_path)
for layer in model.layers[:4]:
layer.trainable = False
model.compile(loss='categorical_crossentropy',optimizer=ad,metrics=['accuracy','categorical_accuracy'])
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)