Как получить выходное значение в массиве из каждого слоя Keras - PullRequest
0 голосов
/ 15 мая 2019

Я новичок в питоне и керасе. Я использую Keras с бэкэндом тензорного потока. Я хочу получить значение в массиве от каждого слоя (скрытый и выходной слой) в Keras. Как я могу это сделать?

Это моя последовательная модель

def baseline_model():
# create model
model = Sequential()
model.add(Conv2D(32, (5, 5), input_shape=(1, 28, 28), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(num_classes, activation=tempsigmoid))
# Compile model
model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
return model

# build the model
model = baseline_model()

Я пытался использовать этот код

hidden_layer = model.layers[4].output
print(hidden_layer)

но результат в тензоре

Tensor("dense_1/Relu:0", shape=(?, 128), dtype=float32)

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Чтобы извлечь i -й слой нейронной сети, вы можете использовать функции Keras.Предположим, что вы тренируете Model по некоторым данным df:

from tensorflow.keras import backend as K

# create a Keras function to get i-th layer
get_layer_output = K.function(inputs = Model.layers[0].input, outputs = Model.layers[i].output)

# extract output
layer_output = get_layer_output(df)

Практическое применение можно найти здесь .Надеюсь, это поможет, иначе дайте мне знать.

0 голосов
/ 15 мая 2019

Вы можете сделать то же самое, но сохранить данные следующим образом:

hidden_layer = model.layers[4].output
hidden_layer = hidden_layer.eval(session=tf.Session())
print(hidden_layer)

Это непосредственно сохранит данные Tensor в переменной hidden_layer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...