我正在构建一个自动编码器并训练模型,以便目标输出与输入相同。
我正在使用顺序 Keras 模型。当我使用 model.predict 时,我希望它从特定层(Dense256)导出数组而不是输出。
这是我当前的模型:
model = Sequential()
model.add(Dense(4096, input_dim = x.shape[1], activation = 'relu'))
model.add(Dense(2048, activation='relu'))
model.add(Dense(1024, activation='relu'))
model.add(Dense(512, activation='relu'))
model.add(Dense(256, activation='relu'))
model.add(Dense(512, activation='relu'))
model.add(Dense(1024, activation='relu'))
model.add(Dense(2048, activation='relu'))
model.add(Dense(4096, activation='relu'))
model.add(Dense(x.shape[1], activation ='sigmoid'))
model.compile(loss = 'mean_squared_error', optimizer = 'adam')
history = model.fit(data_train,data_train,
verbose=1,
epochs=10,
batch_size=256,
shuffle=True,
validation_data=(data_test, data_test))
最佳答案
训练后,从训练后的模型(模型)创建一个新模型(模型2),以所需层结尾。
您可以使用图层名称来执行此操作:
(在 model.summary() 中,具有 256 个神经元的密集层“名称”为密集_5)
from keras.models import Model
model2= Model(model.input,model.get_layer('dense_5').output)
或者按图层顺序:
(具有 256 个神经元的密集层在 model.summary() 中排名第五)
from keras.models import Model
model2= Model(model.input,model.layers[4].output)
然后你可以使用预测
preds=model2.predict(x)
关于python - 从顺序 Keras 模型中保存特定层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53702455/