fchollet 5.4-visualizing-what-convnets-learn input_13: 0 и ошибка подачи и получения

Ваша проблема в том, что вы используете распаковку аргументов в лямбда при использовании Python 3. Вместо этого:

lambda(x,y): sum(n[1] for n in y)

Сделайте это:

lambda item: sum(n[1] for n in item[1])
0
задан foobar8675 16 January 2019 в 01:11
поделиться

1 ответ

Эта ошибка вызвана:

layer_outputs = [layer.output for layer in model.layers[:8]]

, и это говорит о том, что первый слой (входной слой) и загружается и выбирается.

Вот обходной путь:

import keras.backend as K
layer_outputs = [K.identity(layer.output) for layer in model.layers[:8]]

РЕДАКТИРОВАТЬ: полный пример, код адаптирован из: Mask_RCNN - run_graph

import numpy as np
import keras.backend as K
from keras.models import Sequential, Model
from keras.layers import Input, Dense, Flatten

model = Sequential()
ip = Input(shape=(512,512,3,))
fl = Flatten()(ip)
d1 = Dense(20, activation='relu')(fl)
d2 = Dense(3, activation='softmax')(d1)

model = Model(ip, d2)
model.compile('adam', 'categorical_crossentropy')
model.summary()

layer_outputs = [K.identity(layer.output) for layer in model.layers]
#layer_outputs = [layer.output for layer in model.layers] #fails
kf = K.function([ip], layer_outputs)
activations = kf([np.random.random((1,512,512,3))])
print(activations)
0
ответ дан keineahnung2345 16 January 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: