Я выполняю увеличение данных с использованием
data_gen=image.ImageDataGenerator(rotation_range=20,width_shift_range=0.2,height_shift_range=0.2,
zoom_range=0.15,horizontal_flip=False)
iter=data_gen.flow(X_train,Y_train,batch_size=64)
data_gen.flow()
, требуется матрица данных ранга 4, поэтому форма X_train
имеет значение (60000, 28, 28, 1)
. Нам нужно передать ту же форму, то есть (60000, 28, 28, 1)
при определении архитектуры модели следующим образом:
model=Sequential()
model.add(Dense(units=64,activation='relu',kernel_initializer='he_normal',input_shape=(28,28,1)))
model.add(Flatten())
model.add(Dense(units=10,activation='relu',kernel_initializer='he_normal'))
model.summary()
model.add(Flatten())
был использован для решения проблемы ранга 2. Теперь проблема с model.summary()
. Это дает неправильный вывод, как показано ниже;
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 28, 28, 64) 128
_________________________________________________________________
flatten_1 (Flatten) (None, 50176) 0
_________________________________________________________________
dense_2 (Dense) (None, 10) 501770
=================================================================
Total params: 501,898
Trainable params: 501,898
Non-trainable params: 0
Output Shape
для dense_1 (Dense)
должно быть (None,64)
, а Param #
должно быть (28*28*64)+64
, то есть 50240
. Output Shape
для dense_2 (Dense)
является правильным, но Param #
должно быть (64*10)+10
, то есть 650
.
Почему это происходит и как можно решить эту проблему?