После обсуждения API конвейера tf.data в этой статье я хочу поговорить о библиотеке наборов данных TensorFlow. Если вы новичок в API tf.data, я настоятельно рекомендую вам ознакомиться с частью 1 серии, которая знакомит с tf.data, и это необходимо для понимания этой библиотеки, поскольку библиотека наборов данных TensorFlow возвращает данные как tf.data. Наборы данных.
Оглавление:
- Краткий обзор библиотеки наборов данных TensorFlow.
- Введение в библиотеку наборов данных TensorFlow.
- Методы визуализации библиотеки наборов данных TensorFlow.
- Несколько способов разделить ваши данные на: обучение, тестирование и проверку.
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’. В каталоге представлен исчерпывающий список доступных наборов данных.
Приведенный выше код делает следующее:
- Он загружает набор данных mnist (как tfrecord)
- Загружает данные в виде 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 метода:
tfds.as_dataframe:
Помогает визуализировать изображения, аудио, тексты, видео и т. д. Ниже показано, как использовать метод as_dataframe. Следует отметить, что методу требуетсяwith_info=True
. В следующем примере мы загрузим набор данных mnist и воспользуемся методом take() tf.data.Datasets, чтобы выбрать 4 примера из набора данных загрузки и визуализировать их.
2. tfds.show_examples
: этот метод отображает несколько выборок из набора данных. В настоящее время он поддерживает только набор данных изображений
4. Несколько способов разделить ваши данные на: обучение, тестирование и проверку
Метод split предлагает несколько способов разделения ваших данных, и здесь, в этом разделе, используя код, я хочу продемонстрировать эти методы. Этот метод может быть очень удобен, когда вы хотите провести эксперименты с разными размерами для обучения, проверки и тестирования.
- load возвращает словарь, используйте его для разделения ваших данных
- load возвращает данные поезда и теста отдельно
- 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