18+
реклама
18+
Бургер менюБургер меню

Джейд Картер – 120 практических задач (страница 2)

18

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

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

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

```

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

```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}")

```

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

```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}")

```

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

Регуляризация 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}")

```

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

```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 отключает случайный набор нейронов в процессе обучения, что снижает зависимость между нейронами.