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

Я начал изучать Pytorch неделю назад и счел важным написать этот блог для людей, которым трудно загружать пользовательские данные (изображения) в предварительно обученную нейронную сеть. Это сообщение в блоге решает проблему, используя DataLoader api от Pytorch за пять основных шагов.

1. Настройка каталога

- Сохраняйте изображения в двух отдельных папках, одна для обучения (../traindata), а другая для тестирования (../validationdata).

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

- Заполните каждую папку класса соответствующей копией изображения.

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

2. Импортируйте необходимые библиотеки

Здесь необходимы две основные библиотеки:

  • DataLoaders из torch.utils.data
  • «Преобразования» и «наборы данных» из «torchVision»

3. Преобразуйте образцы классов данных с помощью преобразований из torchvision

Класс transforms имеет конструктор Compose, который просто принимает ряд параметров, каждый из которых описывает тип преобразования, которое вы хотите применить к изображениям. Такими преобразованиями могут быть повороты, переводы, обрезка по центру, нормализация изображений и, конечно же, наиболее важной функцией будет «transforms.ToTensor ()», которая является фундаментальной функцией, которую должен иметь каждый набор данных, учитывая, что Pytorch принимает данные только в тензорах. Ниже приведен пример преобразования для обучения наших классов с предварительно обученной моделью в pytorch.

4. Создайте набор данных с примененными преобразованиями

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

train_data = dataset.ImageFolder («../ поезд», train_transform = преобразование)

5. Создайте каждый загрузчик данных из соответствующего набора данных

На этом последнем шаге создайте экземпляр Data Loader и, в зависимости от того, как вы хотите, чтобы ваши данные загружались для обучения и тестирования, определите следующие параметры:

- Вышеупомянутые созданные наборы данных, конечно (как данные обучения, так и данные проверки)

- Размер пакета: указывает количество образцов изображения, которые должны быть собраны за итерацию после перемешивания.

- Shuffle: логическое значение, указывающее, где данные должны быть перемешаны или нет. Обычно это верно для целей обучения, чтобы улучшить показатели классификации:

train_loader = torch.utils.data.DataLoader (train_data, batch_size = 30, shuffle = True)

Приведенный выше код перемешивает набор данных и собирает 30 изображений за раз для обучения.

Validation_Loader очень похож, только у него есть собственный набор данных, а для shuffle установлено значение false:

validation_loader = torch.utils.data.DataLoader (validation_data, batch_size = 30, shuffle = False)

Тщательное применение приведенного выше алгоритма должно привести к аналогичному результату, указанному ниже:

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

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

Удачи !