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)