120 практических задач. Джейд Картер
Чтение книги онлайн.

Читать онлайн книгу 120 практических задач - Джейд Картер страница 6

Название: 120 практических задач

Автор: Джейд Картер

Издательство: Автор

Жанр:

Серия:

isbn:

isbn:

СКАЧАТЬ сети.

      Добавление сверточных слоев

      Сверточные слои (Conv2D) являются основным элементом CNN. Они применяют фильтры к входному изображению, чтобы выделить различные признаки, такие как края, текстуры и другие важные детали. В нашем примере мы добавляем три сверточных слоя:

      1. Первый сверточный слой:

      ```python

      model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))

      ```

      – 32 фильтра: Каждый фильтр будет извлекать определенный признак из изображения.

      – Размер фильтра 3x3: Это небольшой размер, который хорошо подходит для выделения мелких деталей.

      – Функция активации ReLU: Rectified Linear Unit (ReLU) помогает сети обучаться нелинейным отношениям между признаками.

      – input_shape=(32, 32, 3): Указываем форму входных данных (32x32 пикселя, 3 цветовых канала).

      2. Второй сверточный слой:

      ```python

      model.add(layers.Conv2D(64, (3, 3), activation='relu'))

      ```

      –64 фильтра: Увеличиваем количество фильтров, чтобы сеть могла извлекать более сложные признаки.

      3. Третий сверточный слой:

      ```python

      model.add(layers.Conv2D(64, (3, 3), activation='relu'))

      ```

      – Дополнительный сверточный слой для дальнейшего выделения признаков.

      Добавление слоев подвыборки (Pooling)

      Слои подвыборки (MaxPooling2D) уменьшают размерность выходных данных от сверточных слоев, что снижает вычислительную сложность и помогает избежать переобучения. Они выбирают максимальное значение из каждого подмассива данных, тем самым сохраняя наиболее значимые признаки.

      1. Первый слой подвыборки:

      ```python

      model.add(layers.MaxPooling2D((2, 2)))

      ```

      – Размер пула 2x2: Снижение размерности выходных данных в два раза по каждой оси.

      2. Второй слой подвыборки:

      ```python

      model.add(layers.MaxPooling2D((2, 2)))

      ```

      – Дополнительный слой подвыборки для дальнейшего уменьшения размерности данных.

      Добавление полносвязных слоев (Fully Connected Layers)

      После извлечения признаков из изображений с помощью сверточных и подвыборочных слоев, мы используем полносвязные слои (Dense) для классификации. Эти слои соединяют каждый нейрон предыдущего слоя с каждым нейроном текущего слоя.

      1. Приведение данных в одномерный вид:

      ```python

      model.add(layers.Flatten())

      ```

      – Преобразование многомерного выхода сверточных слоев в одномерный вектор.

      2. Первый полносвязный слой:

      ```python

      model.add(layers.Dense(64, activation='relu'))

      ```

      – 64 нейрона: Обучение нелинейным комбинациям признаков.

      3. Выходной полносвязный слой:

      ```python

      model.add(layers.Dense(10))

      ```

      – 10 нейронов: Каждый нейрон соответствует одному классу из 10 в наборе данных CIFAR-10.

      Построенная таким образом сеть состоит из СКАЧАТЬ