Главная | Все статьи | Код

Машинное обучение с TensorFlow: создание первых моделей на Python

Python Время чтения статьи ~4 минуты
Машинное обучение с TensorFlow: создание первых моделей на Python главное изображение

Рассказываем о библиотеке TensorFlow и показываем, как создать первые модели машинного обучения с использованием TensorFlow на Python.

Познакомьтесь с Python бесплатно

Начните с этих 5 уроков

Что такое TensorFlow

Библиотека TensorFlow предназначена для работы с числами и для создания моделей машинного обучения. Задача библиотеки — помогать в обучении искусственного интеллекта. Изначально TensorFlow разрабатывалась для Python, хотя есть версии и для других языков.

Кроме открытого исходного кода, у TensorFlow есть и другие преимущества:

  • Поддерживает распределенные вычисления, что позволяет обрабатывать большие объемы данных быстрее, используя несколько компьютеров или процессоров одновременно.
  • TensorFlow может работать на разных устройствах, таких как обычные процессоры (CPU), графические процессоры (GPU) и специальные процессоры для машинного обучения, например Tensor Processor Unit.
  • У TensorFlow есть большое и активное сообщество разработчиков, которые создают учебные материалы, отвечают на вопросы и помогают друг другу.

Установка и настройка TensorFlow

Перед установкой TensorFlow убедитесь, что у вас установлены Python версии 3.6–3.9 и pip.

Для установки используйте команду:

pip install tensorflow

После этого запустите Python и импортируйте TensorFlow:

import tensorflow as tf

print(tf.__version__).

Основные концепции TensorFlow

Приступая к работе с TensorFlow, будьте уверены, что знакомы с основными терминами и понятиями, необходимыми для работы с этой библиотекой.

Познакомьтесь с Python бесплатно

Начните с этих 5 уроков

Тензоры: многомерные массивы данных

Тензоры представляют собой многомерные массивы в TensorFlow. Одномерный тензор может представлять собой вектор, двумерный — матрицу, а тензор с большим числом измерений может использоваться для представления сложных структур данных, таких как изображения или временные ряды.

Операции с тензорами

В TensorFlow возможны разные типы операций с тензорами, например стандартные математические функции, такие как сложение и вычитание, и более сложные операции: матричное умножение, вычисление свертки и логические операции.

Граф вычислений

Граф вычислений в TensorFlow — это набор операций и тензоров, связанных между собой. Граф определяет, каким образом будут проводиться вычисления, каков порядок выполнения операций и зависимость между ними.

Сессии

Сессии в TensorFlow обеспечивают выполнение операций, определенных в графе вычислений. Сначала создается граф, который определяет вычисления, а затем запускается сессия, где выполняется граф или часть графа. Каждую сессию необходимо закрыть.

Keras — высокоуровневый API

Keras — это встроенный в TensorFlow высокоуровневый API с удобным интерфейсом для определения слоев нейронных сетей, настройки параметров обучения и управления процессом обучения. С помощью Keras можно быстро создавать сложные модели, используя всего несколько строк кода.

Создание простой модели на Python

Чтобы создать простую модель на Python, выполните следующие шаги.

Подготовка данных

Для начала нужно подготовить данные, которые будут использоваться для обучения модели, например 1000 строк данных по 10 признаков (labels) на каждую, с помощью библиотеки NumPy.

import numpy as np data = np.random.rand(1000, 10)

labels = np.random.randint(2, size=(1000, 1))

Построение модели

Затем с помощью API Keras для TensorFlow строится сама модель, состоящая из нужного числа слоев, например последовательная модель (Sequential), состоящая из двух слоев: один скрытый и один выходной.

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import

Dense model = Sequential([ Dense(32, activation='relu', input_shape=(10,)),

Dense(1, activation='sigmoid') ])

Компиляция модели

Компиляция включает выбор оптимизатора, функции потерь и метрик, которые будут использоваться для оценки качества модели.

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

Обучение модели

На заключительном этапе мы обучаем модель на подготовленных данных. Эпохи — это число полных проходов по набору данных, а батч — число образцов, используемых для одной итерации весовых коэффициентов модели.

model.fit(data, labels, epochs=10, batch_size=32)

Оценка и улучшение модели

После создания модели ее можно улучшать, оценив точность на тестовой выборке данных. Для этого нужно последовательно выполнить такие шаги:

  • Разделение данных на обучающую и тестовую выборки.
  • Обучение модели на обучающей части выборки.
  • Оценка точности модели на тестовой выборке.
  • Выбор метода улучшения модели.

Можно воспользоваться следующими методами улучшения модели:

  • Изменение архитектуры, то есть другие значения числа строк и признаков (labels).
  • Регуляризация и Dropout, то есть предотвращение переобучения.
  • Изменения гиперпараметров — количества эпох и размера батча.

Познакомьтесь с Python бесплатно

Начните с этих 5 уроков

Заключение

Создать простую модель для машинного обучения, настроить ее, обучить и улучшить несложно, если воспользоваться библиотекой TensorFlow для языка Python.

Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 21 ноября
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 21 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 21 ноября
профессия
от 28 908 ₸ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 21 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 21 ноября