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

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

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

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

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

Жанр:

Серия:

isbn:

isbn:

СКАЧАТЬ на тестовых данных с 256 нейронами: {test_acc}")

      ```

      2. Использование другой функции активации:

      ```python

      # Скрытый слой с функцией активации 'tanh'

      model = models.Sequential()

      model.add(layers.Dense(512, activation='tanh', input_shape=(28 * 28,)))

      model.add(layers.Dense(10, activation='softmax'))

      model.compile(optimizer='adam',

      loss='sparse_categorical_crossentropy',

      metrics=['accuracy'])

      model.fit(train_images, train_labels, epochs=5, batch_size=128)

      test_loss, test_acc = model.evaluate(test_images, test_labels)

      print(f"Точность на тестовых данных с активацией tanh: {test_acc}")

      ```

      3. Использование другого оптимизатора:

      ```python

      # Оптимизатор 'SGD'

      model = models.Sequential()

      model.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))

      model.add(layers.Dense(10, activation='softmax'))

      model.compile(optimizer='sgd',

      loss='sparse_categorical_crossentropy',

      metrics=['accuracy'])

      model.fit(train_images, train_labels, epochs=5, batch_size=128)

      test_loss, test_acc = model.evaluate(test_images, test_labels)

      print(f"Точность на тестовых данных с оптимизатором SGD: {test_acc}")

      ```

      Дополнительные методы предобработки данных и регуляризации

      1. Регуляризация Dropout:

      ```python

      # Модель с Dropout

      model = models.Sequential()

      model.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))

      model.add(layers.Dropout(0.5))

      model.add(layers.Dense(10, activation='softmax'))

      model.compile(optimizer='adam',

      loss='sparse_categorical_crossentropy',

      metrics=['accuracy'])

      model.fit(train_images, train_labels, epochs=5, batch_size=128)

      test_loss, test_acc = model.evaluate(test_images, test_labels)

      print(f"Точность на тестовых данных с Dropout: {test_acc}")

      ```

      2. Стандартизация данных:

      ```python

      from sklearn.preprocessing import StandardScaler

      # Стандартизация данных

      scaler = StandardScaler()

      train_images_scaled = scaler.fit_transform(train_images)

      test_images_scaled = scaler.transform(test_images)

      model = models.Sequential()

      model.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))

      model.add(layers.Dense(10, activation='softmax'))

      model.compile(optimizer='adam',

      loss='sparse_categorical_crossentropy',

      metrics=['accuracy'])

      model.fit(train_images_scaled, train_labels, epochs=5, batch_size=128)

      test_loss, test_acc = model.evaluate(test_images_scaled, test_labels)

      print(f"Точность на тестовых данных со стандартизацией: {test_acc}")

      ```

      Эти дополнительные шаги помогут вам лучше понять поведение модели и улучшить её производительность за счёт оптимизации различных параметров и методов предобработки данных.

      2. Улучшение модели с использованием регуляризации и dropout

      – Задача: Повышение точности классификации.

      Регуляризация и Dropout – это мощные методы, которые помогают улучшить обобщающую способность модели и предотвращают переобучение. Регуляризация добавляет штраф за сложные модели, уменьшая значения весов, а Dropout отключает случайный набор нейронов в процессе обучения, что снижает зависимость между нейронами.

      Регуляризация L2

      Регуляризация L2 добавляет штраф за большие веса к функции потерь, что помогает предотвратить переобучение.

      ```python

      import tensorflow as tf

      from tensorflow.keras import layers, models, regularizers

      import numpy as np

      import СКАЧАТЬ