Оцініть цю публікацію!
[Усього: 0 Середнє значення: 0]
Даний скрипт створює просту згорткову нейронну мережу (CNN) для класифікації рукописних цифр з набору даних MNIST. Основні етапи включають завантаження та підготовку даних, визначення архітектури моделі, компіляцію та навчання моделі.
- Завантаження та підготовка даних:
- Для цього використовується набір даних MNIST, який містить рукописні цифри від 0 до 9. Датасет розділений на тренувальні та тестові дані.
- Зображення цифр розміром 28×28 пікселів нормалізуються, тобто значення пікселів між 0 та 255 перетворюються в діапазон від 0 до 1.
- Створення моделі:
- Модель складається з трьох блоків згорткових шарів (
Conv2D
) та шарів підсумування (MaxPooling2D
), які служать для витягування ознак зображень. - Після цього є два повнозв’язаних шари (
Dense
), які використовуються для класифікації. Останній шар використовує функцію активації Softmax для визначення ймовірностей кожного класу (цифри від 0 до 9).
- Модель складається з трьох блоків згорткових шарів (
- Компіляція та навчання моделі:
- Вибрано функцію втрат категоріальної крос-ентропії, оптимізатор Adam та метрику точності.
- Тривалість навчання моделі обмежена 5 епохами (повтореннями навчання всього тренувального набору даних).
- Модель навчається за допомогою функції
fit
, яка приймає тренувальні дані та мітки, кількість епох та розмір пакету для тренування.
- Оцінка точності на тестовому наборі:
- Модель оцінюється на тестовому наборі, і точність виводиться на екрані.
Як використовувати скрипт:
- Вам потрібно встановити TensorFlow та інші необхідні бібліотеки за допомогою команди
pip install tensorflow
. - Запустіть скрипт в середовищі Python.
- Скрипт виведе процес тренування та оцінку точності на тестовому наборі.
import tensorflow as tf from tensorflow.keras import layers, models from tensorflow.keras.datasets import mnist # Завантажте набір даних MNIST (train_images, train_labels), (test_images, test_labels) = mnist.load_data() # Переведіть дані у вигляд, зручний для моделі train_images = train_images.reshape((60000, 28, 28, 1)).astype('float32') / 255 test_images = test_images.reshape((10000, 28, 28, 1)).astype('float32') / 255 # Переведіть цільові мітки у категоріальний формат train_labels = tf.keras.utils.to_categorical(train_labels) test_labels = tf.keras.utils.to_categorical(test_labels) # Створіть модель нейронної мережі model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.Flatten()) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, activation='softmax')) # Скомпілюйте модель model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # Навчання моделі model.fit(train_images, train_labels, epochs=5, batch_size=64, validation_data=(test_images, test_labels)) # Оцініть точність на тестовому наборі даних test_loss, test_acc = model.evaluate(test_images, test_labels) print(f'\nТочність на тестовому наборі даних: {test_acc * 100:.2f}%')
Ви можете використовувати цей приклад як основу для своїх власних завдань машинного навчання. Навчання нейронної мережі зазвичай вимагає підготовки та налагодження, залежно від конкретного завдання.
Схоже з цієї категорії:
Бот Телеграм на Python
Прогноз погоди на Python
Підключення до БД і виведення інформації з неї через Python
Масове додавання даних в XLSX за допомогою Python
Використання ChatGPT через API використовуючи Python
Запуск декількох програм відповідно до часу на Python
Python скрипт перевірки існування теки
Простий музичний плеєр на мові Python
Простий парсер на Python
Пінгування веб-сторінок на Python
Генератор паролю на Python