Читаю статью по машинному обучению, пишу код как в статье.
В статье описывается приложение распознающее кошек и собак на изображениях. Я понял, что изображения приводятся к размеру 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? Ну или чтобы эти термины объяснялись.