Учебное пособие по TensorFlow для начинающих
TensorFlow — один из самых популярных фреймворков для глубокого и машинного обучения. Разработанный командой Google Brain, TensorFlow широко используется в многочисленных исследовательских проектах и промышленных приложениях. В этой статье представлено пошаговое руководство, которое поможет вам, как начинающему, освоить TensorFlow.
1. Освоение основ TensorFlow
Прежде чем приступить к установке и использованию TensorFlow, важно понять, что такое TensorFlow и каковы его основные концепции. TensorFlow — это фреймворк с открытым исходным кодом для численных вычислений и машинного обучения. Он использует графы потоков данных для выполнения численных операций, где узлы графа представляют математические операции, а ребра — многомерные массивы данных (тензоры), соединенные между собой.
2. Установка TensorFlow
Первый шаг в использовании TensorFlow — это его установка. Вот как установить TensorFlow с помощью pip, менеджера пакетов Python.
1. Установка Python:
Убедитесь, что у вас установлен Python. На момент написания этой статьи TensorFlow совместим с Python версий от 3.6 до 3.9. Вы можете скачать Python с официального сайта Python.
2. Виртуальная среда:
Настоятельно рекомендуется создать виртуальную среду для изоляции вашего проекта TensorFlow:
«Ш
python -m венв myenv
source myenv/bin/activate Для пользователей Mac/Linux
myenv\Scripts\activate Для пользователей Windows
«`
3. Установка TensorFlow:
Теперь установите TensorFlow с помощью pip:
«Ш
pip установить тензорный поток
«`
3. Hello World с TensorFlow
Теперь, когда TensorFlow установлен, давайте создадим простой скрипт на Python для проверки установки. Создайте новый файл Python и назовите его `hello_tensorflow.py`.
«`питон
импортировать тензорный поток как tf
Создайте константу
hello = tf.constant('Hello, TensorFlow!')
Начать сессию
с tf.Session() как sess:
результат = sess.run(hello)
печать (результат)
«`
Адаптируйте код в соответствии с версией TensorFlow 2.x:
«`питон
импортировать тензорный поток как tf
Создайте константу
hello = tf.constant('Hello, TensorFlow!')
Запуск с использованием режима немедленного выполнения (включен по умолчанию)
print(hello.numpy())
«`
Сохраните файл, затем запустите:
«Ш
python hello_tensorflow.py
«`
4. Понимание тензоров и основных операций.
Тензоры — это основная структура данных в TensorFlow, представляющая собой многомерные массивы. Вот несколько примеров, которые помогут вам понять, что такое тензоры:
«`питон
импортировать тензорный поток как tf
Создание тензоров
скаляр = tf. константа(7) скаляр
vector = tf. constant([1, 2, 3]) vector
matrix = tf. constant([[1, 2], [3, 4]]) matrix
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) 3D тензор
print(f'Скаляр: {скаляр}')
print(f'Вектор: {вектор}')
print(f'Матрица: {matrix}')
print(f'Tensor 3D: {tensor3d}')
«`
Для выполнения основных операций над тензорами:
«`питон
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
Операция сложения
add = tf.add(a, b)
Операции умножения матриц
mul = tf.matmul(a, b)
print(f'Добавление: {добавить}')
print(f'Умножение матриц: {mul}')
«`
5. Создание простой модели нейронной сети
Следующий шаг — создание простой модели нейронной сети. Мы построим модель классификации изображений, используя набор данных MNIST, базу данных изображений рукописных цифр. Давайте начнём:
«`питон
импортировать тензорный поток как tf
из tensorflow.keras импорт наборов данных, слоев, моделей
Загрузка набора данных MNIST
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
Нормализация изображения
train_images, test_images = train_images/255.0, test_images/255.0
Создание модели
модель = модели.Последовательные([
layers.Flatten(input_shape=(28, 28)),
Layers.Dense(128, активация = 'relu'),
слои.Плотный(10)
])
Компиляция моделей
модель.компиляция(оптимизатор='адам',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
метрики=['точность'])
Обучение модели
model.fit(train_images, train_labels, epochs=5)
Тестирование модели
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Точность теста: {test_acc}')
«`
Объяснение:
– Наборы данных: Мы импортируем и загружаем набор данных MNIST.
– Предварительная обработка: Нормализация набора данных путем деления значений пикселей на 255.
– Модель: Мы определяем простую модель с двумя слоями. Первый слой — это слой `Flatten`, преобразующий двумерное изображение в одномерный массив. Второй слой — это слой `Dense` со 128 нейронами и функцией активации `relu`, а последний — это слой `Dense` с 10 нейронами, представляющими 10 классов.
– Компиляция: Мы компилируем модель, используя оптимизатор `adam` и функцию потерь `SparseCategoricalCrossentropy`.
– Обучение: Обучите модель в течение 5 эпох.
– Оценка: Проведите оценку модели на основе тестовых данных.
6. Модели сохранения и загрузки
После обучения модели вы можете захотеть сохранить её для последующего использования без необходимости повторного обучения. Вот как сохранить и загрузить модель:
«`питон
Сохранение модели
model.save('my_model.h5')
Модель загрузки
new_model = tf.keras.models.load_model('my_model.h5')
Проверка загруженной модели
loss, acc = new_model.evaluate(test_images, test_labels)
print(f'Точность загруженной модели: {acc}')
«`
заключение
Это руководство представляет собой подробное введение в TensorFlow для начинающих. Мы рассмотрели установку, основные операции с тензорами и создание простой модели нейронной сети с использованием набора данных MNIST. TensorFlow предлагает множество расширенных возможностей для изучения, таких как расширенная обработка данных, более сложные модели и использование TensorFlow на таких устройствах, как TPU и GPU. Мы надеемся, что это руководство поможет вам начать работу в мире машинного обучения с TensorFlow.