Я пытаюсь понять про upsampling2d в керасе.Я написал простой код ниже
model = Sequential()
(trainX, trainY), (testX, testY) = mnist.load_data()
input_shape = (trainX.shape[1], trainX.shape[2], 1)
layer1 = Conv2D(64, 3,input_shape=input_shape, padding='same', activation='relu')
layer2 = UpSampling2D ()
layer3 = Conv2D(128, 3, padding='same', activation='relu')
model.add(layer1)
model.add(layer2)
model.add(layer3)
model.compile(loss='binary_crossentropy', optimizer = 'adam')
print (model.summary())
Мой вывод
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 28, 28, 64) 640
_________________________________________________________________
up_sampling2d_1 (UpSampling2 (None, 56, 56, 64) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 56, 56, 128) 73856
=================================================================
Total params: 74,496
Trainable params: 74,496
Non-trainable params: 0
_________________________________________________________________
Вопрос:
Я понял, как рассчитывается 640, 73856 параметров, но если я вижуслой повышенной дискретизации, я вижу, параметр обучения равен нулю.В этом случае 26 * 26 увеличивается до 56 * 56.Как данные будут внутри 56 * 56 относительно 26 * 26?