Как сделать входной слой явным в tf.keras - PullRequest
0 голосов
/ 23 апреля 2020

В этом вопросе используется предварительно обученная сеть VGG, в сводке которой указывается InputLayer. Мне нравится ясность явного входного слоя ... даже если функционально он ничего не делает (правда?). Но когда я пытаюсь имитировать c что-то вроде:

model = Sequential()
model.add(Input(shape=(128, 128, 3)))
model.add(Conv2D(32, (3, 3), activation='relu'))

результат, отображаемый с помощью print(model.summary()), не отличается от:

model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 3))

... и оба показывают первый слой как слой Conv2D. Где мой Input слой go? И стоит ли возвращать его обратно?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

В вашем примере вы используете последовательный, попробуйте использовать keras.models.Model.

inp = keras.layers.Input((128, 128, 3))
op = keras.layers.Conv2D(32, (3, 3), activation='relu')(inp)
model = keras.models.Model(inputs=[ inp ], outputs = [op] )
model.summary()
Model: "model_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_2 (InputLayer)         [(None, 128, 128, 3)]     0         
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 126, 126, 32)      896       
=================================================================
Total params: 896
Trainable params: 896
Non-trainable params: 0
_________________________________________________________________
0 голосов
/ 23 апреля 2020

Нет, вы можете хранить их отдельно, это не имеет никакого значения.

Что касается input_shape, этот аргумент может быть указан для каждого слоя, но Keras достаточно умен, чтобы выводить его собственная форма следующих слоев, поэтому мы не упоминаем об этом явно.

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