Задать вопрос
@Andrey_Epifantsev

Какая структура у этой нейронной сети?

Читаю статью по машинному обучению, пишу код как в статье.

В статье описывается приложение распознающее кошек и собак на изображениях. Я понял, что изображения приводятся к размеру 128Х128, потом на огромном датасете обучается нейронная сеть и после этого она может распознавать кошек и собак на изображениях.

Есть такой код описывающий модель нейронной сети:
model = Sequential()
    model.add(Conv2D(32, (3, 3), input_shape=(128, 128, 3), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Conv2D(32, (3, 3), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Flatten())
    model.add(Dense(units=128, activation='relu'))
    model.add(Dense(units=1, activation='sigmoid'))
    model.compile(optimizer=Adam(),
                  loss='binary_crossentropy',
                  metrics=['accuracy'])

Не могу понять: сколько слоёв в этой нейронной сети? 2 или 6? Или другое число? Каждый из вызвов add добавляет новый слой или некоторые из них изменяют предыдущие?

К сожалению статья очень верхушечная и в ней такой информации нет. А в документация к этим функциям написана очень невнятно с использованием большого количества непонятных терминов без ссылок на их определение.

Может быть есть какая-нибудь статья в которой бы объяснялась работа нейросетей, без использования малопонятных терминов вроде 2D convolution layer, Max pooling operation, Flattens the input? Ну или чтобы эти термины объяснялись.
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
adugin
@adugin Куратор тега Python
Conv2D - свёрточный слой, пробегает стопкой свёрток по всему изображению, в каждой его точке рассчитывая новое значение. MaxPooling2D разбивает всё изображение на сетку с клеткой 2х2 пикселя и из каждой клетки выбирает максимальное значение (самый светлый пиксель), их совокупность становится новым изображением размером в 2 раза меньше. Flatten просто "сплющивает" многомерный тензор в одномерный вектор. Dense - классический (как на всех картинках рисуют) полносвязный слой из нейронов, где каждый из нейронов соединён со всеми нейронами предыдущего слоя.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы