#python #keras #deep-learning #conv-neural-network
#python #keras #глубокое обучение #conv-нейронная сеть
Вопрос:
Я следую этому руководству здесь.
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same', input_shape=(32, 32, 3)))
model.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu', kernel_initializer='he_uniform'))
model.add(Dense(10, activation='softmax'))
Я пытаюсь понять данный код, который использует набор данных CIFAR-10.
-
почему он использует
kernel_initializer='he_uniform'?
-
почему он выбрал 128 для плотного слоя?
-
что произойдет, если мы добавим более плотный слой в код, например:
model.add(Dense(512, activation='relu', kernel_initializer='he_uniform'))
-
есть ли какой-либо способ повысить точность модели?
-
какова была бы подходящая скорость отсева?
Ответ №1:
почему он использует
kernel_initializer='he_uniform'
?
Веса в слое нейронной сети инициализируются случайным образом. Но как? Какому дистрибутиву они должны следовать? he_uniform
это стратегия для инициализации весов этого слоя.
почему он выбрал 128 для плотного слоя?
Это было выбрано произвольно.
Что произойдет, если мы добавим более плотный слой в код, например:
model.add(Dense(512, activation='relu', kernel_initializer='he_uniform'))
Я полагаю, вы имеете в виду добавить их туда, где находится другой слой с плотностью 128 нейронов (там это не нарушит модель). Модель станет глубже и будет иметь гораздо большее количество параметров (т. Е. Ваша модель станет более сложной) с любыми положительными или отрицательными сторонами, сопутствующими этому.
какова была бы подходящая скорость отсева?
Обычно вы видите значения в диапазоне [0,2, 0,5]. Более высокие скорости уменьшают переобучение, но могут привести к тому, что обучение станет более нестабильным.