Галерея диаграмм связей папка данных и папка модели
Это интеллектуальная карта папки данных и папки модели. Папка данных и папка модели соответственно отвечают за хранение данных и файлов, связанных с моделью, в проекте и являются важной частью управления и эксплуатации проекта.
Отредактировано в 2024-02-08 15:42:24центральная тема
папка данных
Детеныш
Расколоть
Тест.csv
тестовый набор
Поезд.csv
Обучающий набор
Val.csv
Набор проверки
Миниизображение
Расколоть
Get_unlabel.py
Определить список категорий изображений
Извлеките данные из трех файлов CSV (train.csv, val.csv и test.csv), связанных с набором данных Mini-ImageNet, сопоставив имена файлов и метки категорий в словарь (mini_info) с отсортированными по порядку метками категорий.
Считайте данные из трех файлов CSV в каталоге tieredimagenet/split и организуйте имена файлов и метки категорий в другой словарь (tiered_info).
Категории, которые появляются в tiered_class_list, но не в mini_class_list, идентифицируются, и эти немаркированные категории сохраняются в списке unlabel. Затем выведите количество непомеченных категорий и их содержимое.
Запишите немаркированную информацию в файл CSV, чтобы сформировать файл unlabel.csv.
исходный набор данных
поезд.csv
val.csv
test.csv
Сгенерированный набор данных
unlabel.csv
Дополнительные данные тестирования и проверки
Aux_test.csv
Aux_val.csv
Многоуровневое изображение
Расколоть
Get_spilt.py
Просмотрите различные части набора данных (обучение, значение, тест), сгенерируйте соответствующие файлы CSV и запишите путь к файлу и метку в файл CSV для последующей обработки данных, обучения модели и других задач.
Сгенерированный набор данных
поезд.csv
val.csv
test.csv
папка модели
Загрузчик данных
Куб.py
Класс набора данных PyTorch CUB для загрузки набора данных CUB (Caltech-UCSD Birds-200-2011).
Определяет константы, такие как путь к изображению набора данных, путь сегментации и путь к кэшу.
Функция предварительной обработки данных get_transforms:
Создавайте преобразования, необходимые для преобразования данных, на основе входных параметров, включая случайное кадрирование, случайное горизонтальное переворачивание, искажение цвета и нормализацию.
Установите различную нормализацию данных в соответствии с разными типами магистралей, чтобы адаптироваться к различным потребностям обучения модели.
Класс набора данных CUB:
Наследует класс Dataset PyTorch и используется для загрузки наборов данных CUB.
В функции инициализации __init__ выполняются следующие операции: анализ CSV-файла и получение данных и меток.
Подсчитайте количество категорий в наборе данных.
Вызовите метод get_transforms, чтобы получить преобразования, необходимые для преобразования данных.
Метод parse_csv используется для анализа файлов CSV и получения данных и информации о метках.
Метод __len__ возвращает длину набора данных.
Метод __getitem__ используется для получения образца по указанному индексу, что включает в себя: попытку использования библиотеки jpeg4py для декодирования изображения JPEG и, если это не удается, использование библиотеки PIL для открытия изображения.
Применяйте преобразование данных (предварительную обработку) и возвращайте изображения и метки.
Mini_imagenet.py
Создайте класс набора данных PyTorch (класс MiniImageNet) для работы с набором данных MiniImageNet. Этот класс набора данных используется для загрузки данных изображения и обеспечения соответствующих операций улучшения данных и предварительной обработки для обучения моделей нейронных сетей.
Функция улучшения данных get_transforms: возвращает последовательность преобразования двух методов преобразования изображений (расширенного и нерасширенного) на основе указанного размера изображения, структуры нейронной сети (магистраль) и интенсивности улучшения данных.
Класс набора данных MiniImageNet MiniImageNet: включает в себя такие функции, как загрузка данных, анализ пути изображения и улучшение данных.
Метод __init__: инициализируйте класс набора данных, примите имя подразделения набора данных и некоторые параметры и вызовите функцию get_transforms, чтобы получить метод преобразования данных.
Метод parse_csv: анализирует пути к изображениям и метки из файлов CSV для создания наборов данных.
Метод __len__: возвращает длину набора данных (количество изображений).
Метод __getitem__: получите элемент данных по индексу, попробуйте использовать библиотеку jpeg4py для декодирования изображения формата JPEG, если не получится, используйте библиотеку PIL.
Сэмплерс.py
Для задач метаобучения и классификации в коде реализованы различные классы сэмплеров, обеспечивающие гибкие методы выборки и загрузки данных для задач метаобучения, а также гибкую структуру выборки и загрузки данных для задач метаобучения. Это упрощает работу исследователей и разработчиков. внедрять и тестировать различные алгоритмы метаобучения.
КатегорииКласс сэмплера:
Во время инициализации передайте метку (label), количество образцов в каждой партии (n_batch), количество образцов в каждой категории (n_cls) и количество образцов, отобранных в каждой партии каждой категории (n_per).
Сгенерируйте каждый пакет данных с помощью метода __iter__, случайным образом выберите n_per выборок для каждой категории и верните сглаженный одномерный тензор.
КатегорииViewSampler класс:
Во время инициализации передайте метку (label), количество образцов в каждой партии (n_batch), количество образцов в каждой категории (n_cls), количество образцов в каждой категории для набора поддержки (n_shot) и количество образцов в каждой категории для запроса. Количество образцов в наборе (n_query) и количество просмотров в каждой задаче (n_view).
Метод __iter__ генерирует каждый пакет данных. Для каждой категории случайным образом выбираются образцы n_shot n_query, из которых первые n_shot используются для набора поддержки, а последние n_query используются для набора запросов. Наборы поддержки помечены дополнительной информацией с указанием номера представления.
Класс RandomSampler:
Во время инициализации передайте метку (label), количество образцов в каждой партии (n_batch) и количество этикеток на выборку в каждой партии (n_per).
Метод __iter__ генерирует данные для каждой партии, и для каждой партии случайным образом выбираются n_per образцов.
КлассСэмплер:
Во время инициализации передайте метку (label) и количество образцов на партию (n_per) для каждой категории.
Метод __iter__ генерирует данные для каждой партии, и для каждой категории случайным образом выбираются n_per выборок.
Класс InSetSampler:
При использовании для точной настройки ResNet во время инициализации передаются количество образцов в каждом пакете (n_batch), количество меток для каждого образца в каждом пакете (n_sbatch) и пул образцов (pool).
Метод __iter__ генерирует данные для каждой партии, и каждая партия случайным образом выбирает образцы n_sbatch из пула образцов.
Tiered_imagenet_raw.py
В основном используется для загрузки набора данных Tiered ImageNet, обеспечивая предварительную обработку данных, загрузку изображений и функции обработки этикеток.
Модели
_init_.py
Если каталог содержит файл с именем __init__.py, Python будет рассматривать этот каталог как пакет, что позволит вам использовать оператор импорта для импорта модулей или подпакетов в каталог.
Сообщает Python также импортировать класс FewShotModel в модуле model.models.base при импорте текущего пакета.
Мамл.py
Платформа модельно-агностического метаобучения (MAML), реализованная с помощью PyTorch, используется для метаобучения, реализует модели MAML и предоставляет различные методы оценки, включая оценку перестановок и интегрированную оценку. Это общая основа метаобучения, применимая к различным задачам.
Раздел 1: Импорт библиотек и модулей
Параграф 2: функция update_params
Эта функция принимает значение потерь, словарь параметров (params) и обновляет параметры, используя градиентный спуск. Функция возвращает обновленные параметры.
Параграф 3: функция Internal_train_step
Функция Internal_train_step представляет собой внутренний этап обучения в метаобучении. Он принимает модель, вспомогательные данные и некоторые параметры, затем выполняет внутреннее обучение и возвращает обновленные параметры после внутреннего обучения.
Параграф 4: Классы MAML
Выполняет прямой проход MAML, используя внутренне обученные параметры. Существуют и другие методы оценки, такие какforward_eval,forward_eval_perm иforward_eval_ensemble.
Параграф 5: Реализация модели
Выберите ResNetMAML в качестве магистральной сети в соответствии с заданной категорией магистральной сети и инициализируйте параметры модели. Обновление параметров выполняется в Internal_train_step с использованием функции перекрестной энтропии для внутреннего обучения. Результаты прогнозирования масштабируются с использованием параметра температуры.
MAMLUnicorn.py
Реализован алгоритм метаобучения, в частности вариант, основанный на модельно-агностическом метаобучении (MAML), для задач обучения с несколькими выстрелами.
Сети
Convnet.py
Определяет базовую модель сверточной нейронной сети (ConvNet).
Его основная функция — обработка входного изображения посредством операций свертки и объединения и, наконец, вывод тензора признаков с каналами z_dim, который можно использовать для различных задач, таких как классификация изображений, извлечение признаков и т. д.
Convnet_maml.py
Реализована модель, основанная на метаобучении, в частности алгоритм MAML (Model-Agnostic Meta-Learning) для метаобучения при выполнении небольших выборочных задач обучения.
Dropblock.py
Определяет модуль PyTorch под названием DropBlock, который реализует метод регуляризации под названием DropBlock.
Res12.py
Нейронная сеть, разработанная на основе архитектуры ResNet, в основном используется для задач кратковременного обучения.
Вся сеть принимает структуру ResNet, но при проектировании учитываются характеристики задачи обучения с несколькими выстрелами, включая введение DropBlock и динамическую настройку некоторых параметров. При этом код также содержит операции инициализации параметров модели.
Res12_maml.py
Нейронная сеть, основанная на архитектуре ResNet, в основном используется для адаптивности модели (Model-Agnostic Meta-Learning, MAML) и совместного использования параметров модели в мета-обучении (Meta-Learning).