поэтому я использую Keras (backend Tensorflow) и пытаюсь найти сеть, чтобы решить классификацию cifar10.Я сделал простую сеть.Я получаю точность почти 100%, что, на мой взгляд, означает, что это чрезмерное переоснащение.В моей сети 337 834 обучаемых параметра, и у меня 35 000 обучающих изображений размером (32,32,3) (RGB).Мой вопрос состоит в том, сколько параметров требуется, чтобы «запомнить» одно изображение.Достаточно ли одного параметра для запоминания одного изображения или оно будет занимать 32 * 32 * 3, поэтому один параметр для каждого значения изображения?
Еще один вопрос, который у меня возникает: правильно ли выполнена моя проверка с использованием проверки?сплит?
Спасибо
import keras
from keras.layers import *
#Preprocessing__________________________________________________________________________________________________________
traindata = keras.preprocessing.image.ImageDataGenerator(
rescale=1. / 255, validation_split=0.7)
input = traindata.flow_from_directory('Cifar10/cifar/train',
target_size=(32, 32), color_mode='rgb', batch_size=50,
subset='validation')
#_______________________________________________________________________________________________________________________
#Building Model_________________________________________________________________________________________________________
model = keras.Sequential()
model.add(Deconv2D(filters=32, kernel_size=3, strides=1, input_shape=(32, 32, 3),activation='relu',padding='same'))
model.add(Deconv2D(filters=32, kernel_size=3, strides=1, activation='relu', padding='same'))
model.add(Flatten())
model.add(Dense(units=10, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
print(model.summary())
#_______________________________________________________________________________________________________________________
#Training_______________________________________________________________________________________________________________
model.fit_generator(input, epochs=100, validation_data=input,
callbacks=[keras.callbacks.TensorBoard(write_images=True, log_dir='./'),
keras.callbacks.ModelCheckpoint('temp/Cifar10 .h5', save_best_only=True)],
validation_steps=100)
Сводный вывод
Layer (type) Output Shape Param #
=================================================================
conv2d_transpose_1 (Conv2DTr (None, 32, 32, 32) 896
_________________________________________________________________
conv2d_transpose_2 (Conv2DTr (None, 32, 32, 32) 9248
_________________________________________________________________
flatten_1 (Flatten) (None, 32768) 0
_________________________________________________________________
dense_1 (Dense) (None, 10) 327690
=================================================================
Total params: 337,834
Trainable params: 337,834
Non-trainable params: 0