Привет! В этой статье я расскажу, как создать простейшую нейросеть для классификации рукописных цифр датасета MNIST, используя библиотеку TensorFlow и язык программирования Python. Я сам работал с этой проблемой и на своем опыте пробовал различные подходы, поэтому могу поделиться с вами эффективным решением.Будем использовать Jupiter Notebook для создания и выполнения нашего кода. В первую очередь, нужно установить необходимые библиотеки. Запустите следующий код для установки TensorFlow и Keras⁚
python
!pip install tensorflow
!pip install keras
Далее, импортируем необходимые модули⁚
python
import tensorflow as tf
from tensorflow import keras
Теперь подгрузим данные датасета MNIST и подготовим их для обучения модели⁚
python
(x_train, y_train), (x_test, y_test) keras.datasets.mnist.load_data
x_train x_train / 255.0
x_test x_test / 255.0
x_train x_train.reshape(len(x_train), 28, 28, 1)
x_test x_test.reshape(len(x_test), 28, 28, 1)
y_train keras.utils.to_categorical(y_train, 10)
y_test keras.utils.to_categorical(y_test, 10)
Теперь мы можем создать модель нейросети⁚
python
model keras.models.Sequential([
keras.layers.Flatten(input_shape(28, 28, 1)),
keras.layers.Dense(128, activation’relu’),
keras.layers.Dense(64, activation’relu’),
keras.layers.Dense(10, activation’softmax’)
])
В нашей модели есть первый слой Flatten, который преобразует входные данные из двумерного массива в одномерный. Затем идут два полносвязных слоя Dense с функцией активации ‘relu’. И последний слой Dense с функцией активации ‘softmax’, отвечающий за вывод вероятностного предсказания для каждого класса.Теперь можно скомпилировать и обучить модель⁚
python
model.compile(optimizer’adam’, loss’categorical_crossentropy’, metrics[‘accuracy’])
model.fit(x_train, y_train, batch_size32, epochs5)
test_loss, test_acc model.evaluate(x_test, y_test)
print(‘Точность на тестовых данных⁚’, test_acc)
Мы используем оптимизатор Adam, функцию потерь categorical_crossentropy, и метрику accuracy для оценки производительности модели. Обучаем модель на тренировочных данных с размером пакета 32 и общим количеством эпох 5.
После обучения модели мы оцениваем ее точность на тестовых данных и выводим результат.
Это код для создания нейросети для классификации рукописных цифр датасета MNIST. Если вы следуете этим шагам, то сможете создать свою собственную модель и оценить ее точность.
Полный код в формате ipynb можно найти в прикрепленном к этой статье файле. Удачи в обучении нейросети!