python - 从顺序 Keras 模型中保存特定层

标签 python machine-learning keras neural-network

我正在构建一个自动编码器并训练模型,以便目标输出与输入相同。

我正在使用顺序 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/

相关文章:

machine-learning - tensorflow 估计器 : training with weighted examples

python - 从二维数组中删除行?

machine-learning - 我应该为 Keras 使用哪些层?

python - python中的分位数函数是否忽略NaN?

python - 报告具有最高值或平局的键

python - 如何在 Python 中将特殊字符写入 CSV?

python - 使用 python 类变量来管理全局列表(池)

python - 使用 get_dummies 将分类值转换为数字?

python - 如何使用 statsmodels.formula.api (python) 预测新值

python - 创建具有多个输入的 TimeseriesGenerator