我正在构建一个自动编码器并训练模型,因此目标输出与输入相同。我正在使用顺序 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 回答
jeck猫
TA贡献1909条经验 获得超7个赞
训练后,从以所需层结尾的训练模型(模型)创建一个新模型(模型 2)。
您可以使用图层名称执行此操作:
(在model.summary() 中,你的dense 层'name' 有256 个神经元是dense_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)
慕森卡
TA贡献1806条经验 获得超8个赞
layer.get_weights()
将层的权重作为 numpy 数组返回,然后可以将其保存,例如使用np.save
.
要从 numpy 数组设置权重,layer.set_weights(weights)
可以使用。
您可以通过名称(model.get_layer(LAYER_NAME)
或其编号 ( model.layers[LAYER_INDEX]
))访问您的图层。
添加回答
举报
0/150
提交
取消