Учебники и руководства по TensorFlow 2 на сайте tensorflow.org — отличные ресурсы для изучения и применения нейтральных сетей. Но, поскольку они предоставлены многими авторами, стили подачи материалов неизбежно разнообразны.
Различные стили программирования кажутся непосильными для начинающих учеников, хотя они помогают нам освоить разные подходы к одним и тем же задачам.
Цель этой публикации — реорганизовать программные коды, используемые в учебниках и руководствах по TensorFlow 2, чтобы их можно было использовать для практических примеров обучения TensorFlow 2.
Начнем с того, как импортировать наборы данных в TensorFlow. В учебниках и руководствах используются 3 разных подхода.
I. Используйте tf.keras.datasets
Самый простой способ. Просто загрузите данные из предопределенных модулей.
- Учебные пособия › Основы машинного обучения с Keras › Базовая классификация изображений
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
Загрузка набора данных возвращает четыре массива NumPy:
- Массивы
train_images
иtrain_labels
представляют собой обучающий набор — данные, которые модель использует для обучения. - Модель тестируется на основе тестового набора, массивов
test_images
иtest_labels
.
Изображения представляют собой массивы NumPy 28x28 со значениями пикселей в диапазоне от 0 до 255. метки представляют собой массив целых чисел в диапазоне от 0 до 9. Они соответствуют классу одежда, которую представляет изображение.
Примечание. Вам необходимо знать кортежи.
2. Tutorial › Основы машинного обучения с Keras › Сохранение и загрузка
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()
train_labels = train_labels[:1000] test_labels = test_labels[:1000]
train_images = train_images[:1000].reshape(-1, 28 * 28) / 255.0 test_images = test_images[:1000].reshape(-1, 28 * 28) / 255.0
Примечание. Если один из компонентов shape
имеет специальное значение -1, размер этого измерения вычисляется таким образом, чтобы общий размер оставался постоянным.
3. Учебное пособие › Основы машинного обучения с Keras › Настройка гиперпараметров с помощью Keras Tuner
(img_train, label_train), (img_test, label_test) = keras.datasets.fashion_mnist.load_data()
# Normalize pixel values between 0 and 1 img_train = img_train.astype('float32') / 255.0 img_test = img_test.astype('float32') / 255.0
II. Используйте tf.keras.utils.get_file()
Он загружает файл с URL-адреса, если он еще не находится в кеше. Определение функции следующее:
tf.keras.utils.get_file(
fname, origin, untar=False, md5_hash=None, file_hash=None,
cache_subdir='datasets', hash_algorithm='auto', extract=False,
archive_format='auto', cache_dir=None
)
Примечание. Обязательны первые два аргумента.
- Учебные пособия › Основы машинного обучения с Keras › Базовая классификация текста
# Tutorials > ML basics with Keras > Basic text classifiation
url = "https://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz"
dataset = tf.keras.utils.get_file("aclImdb_v1.tar.gz", url, untar=True, cache_dir='.', cache_subdir='')
Возвращаемое значение — это путь к загруженному файлу, а не сам файл. Чтобы использовать файл, нам нужны некоторые манипуляции с путями.
dataset_dir = os.path.join(os.path.dirname(dataset), 'aclImdb') os.listdir(dataset_dir) train_dir = os.path.join(dataset_dir, 'train') os.listdir(train_dir)
# Take a look at one of them sample_file = os.path.join(train_dir, 'pos/1181_9.txt') with open(sample_file) as f: print(f.read())
2. Учебное пособие › Основы машинного обучения с Keras › Базовая регрессия: прогнозирование эффективности использования топлива
dataset_path = keras.utils.get_file("auto-mpg.data", "http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data")
dataset_path
3. Учебное пособие › Основы ML с Keras › Overfit и underfit
gz = tf.keras.utils.get_file('HIGGS.csv.gz', 'http://mlphysics.ics.uci.edu/data/higgs/HIGGS.csv.gz')
Класс
tf.data.experimental.CsvDataset
можно использовать для чтения записей csv непосредственно из gzip-файла без промежуточного шага распаковки.
III. Используйте tfds (tensorflow_dataset)
Возможно, такой подход отражает желание Google включить все наборы данных в Google. 😱
Этот метод требует еще одного импорта.
import tensorflow_datasets as tfds
- Учебники › Основы машинного обучения с Keras › Классификация текста с TF Hub
Набор данных IMDB доступен в обзорах IMDB или в наборах данных TensorFlow. Следующий код загружает набор данных IMDB на ваш компьютер (или в среду выполнения colab):
# Tutorials > ML basics with Keras > Text classifiation with TF Hub
# Split the training set into 60% and 40%, so we'll end up with 15,000 examples # for training, 10,000 examples for validation and 25,000 examples for testing.
train_data, validation_data, test_data = tfds.load( name="imdb_reviews", split=('train[:60%]', 'train[60%:]', 'test'), as_supervised=True)