Keras 模型停止后,从图层输出最终值(而不是权重)

Keras 模型停止后,从图层输出最终值(而不是权重),keras,neural-network,Keras,Neural Network,假设我有以下简单分类器: import numpy as np from keras import Sequential from keras.layers import Dense import keras from sklearn.model_selection import train_test_split import tensorflow as tf def read_data(path): pass def create_model(): model = Sequ

假设我有以下简单分类器:

import numpy as np
from keras import Sequential
from keras.layers import Dense
import keras
from sklearn.model_selection import train_test_split
import tensorflow as tf

def read_data(path):
    pass

def create_model():
    model = Sequential()
    model.add(Dense(64, activation='linear', input_dim=16, name='den1', trainable=True))
    model.add(keras.layers.ReLU())
    model.add(Dense(32, activation='linear', name='den2', trainable=True))
    model.add(keras.layers.ReLU())
    model.add(Dense(1, activation='sigmoid', trainable=True))
    model.compile(optimizer='adam', loss='binary_crossentropy')
    return model


X, y = read_data('path/to/dataset')
train_x, test_x, train_y, test_y= train_test_split(X, y, test_size=0.2)
es = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=5)
model = create_model()
history = model.fit(train_x, train_y,
                         epochs=100,
                         batch_size=512,
                         shuffle=True,  # shuffle X_train ONLY!
                         validation_split=0.2,
                         verbose=2,
                         callbacks=[es],
                         use_multiprocessing=True)

model.evaluate(test_x, test_y)
我的目标是能够输出从上一个历元退出层
name='den2'
值(而不是权重)。我该怎么做?我尝试使用
model.get_layer('den2')
,但我认为它只输出权重,而不是最后的值


谢谢

您可以按照中的说明操作。获取图层后,使用数据调用中间模型以获取输出

model = create_model() # create the original mode

layer_name = 'den2'
intermediate_layer_model = keras.Model(inputs=model.input,outputs=model.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model(data)