После обсуждения API конвейера tf.data в этой статье я хочу поговорить о библиотеке наборов данных TensorFlow. Если вы новичок в API tf.data, я настоятельно рекомендую вам ознакомиться с частью 1 серии, которая знакомит с tf.data, и это необходимо для понимания этой библиотеки, поскольку библиотека наборов данных TensorFlow возвращает данные как tf.data. Наборы данных.

Оглавление:

  1. Краткий обзор библиотеки наборов данных TensorFlow.
  2. Введение в библиотеку наборов данных TensorFlow.
  3. Методы визуализации библиотеки наборов данных TensorFlow.
  4. Несколько способов разделить ваши данные на: обучение, тестирование и проверку.

1. Краткий обзор библиотеки наборов данных TensorFlow

Из официальных документов:

Наборы данных TensorFlow — это коллекция наборов данных, готовых к использованию с TensorFlow или другими платформами машинного обучения Python, такими как Jax. Все наборы данных представлены как tf.data.Datasets, что позволяет использовать простые в использовании и высокопроизводительные конвейеры ввода.

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

1. Наборы данных, связанные с Computer Vision, для таких задач, как классификация изображений, обнаружение объектов, видео и т. д.

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

3. В библиотеке также есть наборы данных, связанные с неконтролируемым обучением, обучением с подкреплением, наборами данных Graph и многими другими.

На веб-сайте представлено множество наборов данных, доступных в библиотеке, из которой вы можете получить данные. Я настоятельно рекомендую вам просмотреть веб-сайт. Лично я нашел много интересных наборов данных, которые породили для меня немало новых проектов.

2. Введение в библиотеку наборов данных TensorFlow

Прежде чем мы начнем, нам нужно установить библиотеку наборов данных TensorFlow. (он предустановлен в Google Collab). Пожалуйста, запустите следующее, чтобы установить библиотеку tfds на свой компьютер.

pip install -q tfds

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

Самый простой способ скачать и загрузить набор данных для вашего эксперимента — использовать метод tfds.load(). Первым аргументом функции загрузки является имя набора данных, который вы хотите загрузить здесь, поскольку мы используем данные MNIST, мы передаем строку ‘mnist’. В каталоге представлен исчерпывающий список доступных наборов данных.

Приведенный выше код делает следующее:

  1. Он загружает набор данных mnist (как tfrecord)
  2. Загружает данные в виде tf.data.Dataset (из загруженного tfrecord)

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

3. Несколько важных методов библиотеки наборов данных TensorFlow.

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

Методы tfds.load()

  • split=: Какой раздел читать (например, 'train', ['train', 'test'], 'train[80%:]',...)
  • shuffle_files=: Укажите, следует ли перемешивать файлы между эпохами.
  • data_dir=: место сохранения набора данных (по умолчанию ~/tensorflow_datasets/)
  • with_info=True: возвращает tfds.core.DatasetInfo, содержащий метаданные набора данных.
  • download=False: Отключить загрузку
  • as_supervised=True вместо этого вы можете получить кортеж (features, label) для контролируемых наборов данных.

а. Загрузить с with_info=True

Давайте проверим, какую информацию мы получаем, когда устанавливаем with_info=True при загрузке наших наборов данных. Он дает подробную информацию о наборе данных

б. Загрузить с as_supervised=True

4. Методы визуализации библиотеки наборов данных TensorFlow:

Набор данных Tensorflow поставляется с парой функций, которые позволяют визуализировать наборы данных, есть 2 таких метода tfds.as_dataframe и tfds.show_examples.. Давайте подробнее рассмотрим эти 2 метода:

  1. tfds.as_dataframe: Помогает визуализировать изображения, аудио, тексты, видео и т. д. Ниже показано, как использовать метод as_dataframe. Следует отметить, что методу требуется with_info=True . В следующем примере мы загрузим набор данных mnist и воспользуемся методом take() tf.data.Datasets, чтобы выбрать 4 примера из набора данных загрузки и визуализировать их.

2. tfds.show_examples: этот метод отображает несколько выборок из набора данных. В настоящее время он поддерживает только набор данных изображений

4. Несколько способов разделить ваши данные на: обучение, тестирование и проверку

Метод split предлагает несколько способов разделения ваших данных, и здесь, в этом разделе, используя код, я хочу продемонстрировать эти методы. Этот метод может быть очень удобен, когда вы хотите провести эксперименты с разными размерами для обучения, проверки и тестирования.

  1. load возвращает словарь, используйте его для разделения ваших данных
  2. load возвращает данные поезда и теста отдельно
  3. load возвращает словарь на основе определенных разбиений

Чтобы узнать больше о нарезке и разделении, обратитесь к официальной документации.

Ссылку на весь код можно найти ниже:

Ссылка на гитхаб: https://github.com/Virajdatt/tensorflow_dataset_intro
Ссылка на колаб: https://colab.research.google.com/drive/17Hrv6t2j39xxkLwJhQvjNB1I0JF0FAdw?usp=sharing#scrollTo= CegK_RO-KMgs

Вот и все на этой неделе, надеюсь, вы, ребята, хорошо прочитали. На следующей неделе мы рассмотрим пример глубокого обучения в конце концов: как загрузить набор данных из tfds, выполнить EDA, построить и протестировать нашу модель глубокого обучения с помощью tensorflow и KERAS. Мы увидим пример для классификации изображений, а также пример для классификации текста.

Пожалуйста, хлопайте в ладоши, если контент был полезен для вас. Вы можете связаться со мной и поговорить со мной на следующей платформе, если у вас есть какие-либо вопросы или (упомяните свои вопросы в комментариях ниже).

Linkedin:- https://www.linkedin.com/in/virajdatt-kohir/
Twitter:- https://twitter.com/kvirajdatt
GitHub:- https:/ /github.com/Virajdatt
GoodReads:- https://www.goodreads.com/user/show/114768501-virajdatt-kohir