Оцініть цю публікацію!
[Усього: 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
Використання ChatGPT через API використовуючи Python
Підключення до БД і виведення інформації з неї через Python
Генератор паролю на Python
Простий музичний плеєр на мові Python
Прогноз погоди на Python
Масове додавання даних в XLSX за допомогою Python
Простий парсер на Python
Python скрипт перевірки існування теки