Как загрузить экспортированный файл PKL FastAI?

Я обучил свою модель реснета с помощью бесплатного графического процессора Google Colab, поскольку на моем ноутбуке нет графического процессора. Вы можете найти это здесь - https://colab.research.google.com/drive/1FjwI26-fv1h3w5hlg-M5Fl_2nvWBvFzq?usp=sharing

Теперь пришло время, наконец, сделать прогнозы, используя созданную мной модель. Но главная проблема, с которой я сталкиваюсь, это загрузка модели. Конечно, я загружу файл pkl или pth в свою локальную среду и вызову на нем метод predict(), но видимо, чтобы загрузить модель, нужен сам объект класса Learner.

В моем случае это должен быть объект класса cnn_learner. Чтобы создать объект этого класса, мне нужно будет определить все - ImageDataLoaders и загрузить изображения, и только тогда я смогу создать объект класса cnn_learner, перейдя model = cnn_learner(dls, resnet18, metrics=error_rate туда, где dls будет объектом ImageDataLoaders

Как мне обойти это? Потому что, честно говоря, мне это кажется немного нелогичным. Даже документация fastai предполагает, что мне понадобится весь код, когда я экспортирую свою модель, чтобы загрузить модель. Но главный смысл экспорта полностью обученной модели заключается в том, чтобы использовать ее в любой среде, которую я захочу, просто потому, что она полностью обучена, и я могу просто вызвать для нее метод predict() и получить свои прогнозы!

Кроме того, я сохранил модель как в формате pkl, используя model.export, так и в формате pth, используя model.save.

Если бы кто-то мог помочь мне в этом, это было бы очень признательно.

Большое спасибо!

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

Что вы пробовали? Мы не можем точно дать содержательные предложения, если мы не знаем, что вы пробовали и почему это не удалось. Кроме того, вместо того, чтобы просто предоставить ссылку на колаб, включите фрагмент соответствующих разделов, например, где вы конвертировали его в pkl или pth и где вы пытались загрузить из файлов pkl или pth.

Shorn 14.04.2023 04:55
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать метод export ученика следующим образом.

learn.export("/content/model.pkl")

Чтобы снова загрузить модель, используйте load_learner

load_learner('/content/model.pkl')

https://docs.fast.ai/learner.html

Другие вопросы по теме

DQN RuntimeError: формы mat1 и mat2 нельзя умножать (18x7 и 126x64)
Pytorch Neural Networks Multilayer Perceptron Binary Classification я всегда получаю одинаковую точность
Как ускорить свертку с ядрами, содержащими много нулей?
Я пытаюсь создать вариационный автоэнкодер. Я получаю сообщение об ошибке при запуске model.fit, которое я не понимаю
Как нормализовать изображение с его собственным средним значением и стандартным отклонением во время обучения в сетях глубокого обучения
Я создаю классификатор изображений. Возникла проблема при обучении нейросети
Если мы выберем сетку в YOLO слишком маленькой, будет ли хуже обнаруживать объект?
Pytorch: получение одинаковых тестовых оценок в каждом раунде
Использование предварительной выборки tf.data.Dataset приводит к превышению производительности модели?
ValueError: Вход 0 слоя "conv1d" несовместим со слоем: ожидается min_ndim=3, найдено ndim=2. Получена полная форма: (Нет, 128)

Похожие вопросы

Разделите фрейм данных на основе логического условия, умножьте на константу и присвойте значения обратно фрейму данных. Не работает
Параллельное выполнение в Python (параллельная обработка сообщений rabbitmq)
Настройка проекта julia при использовании pyjulia
Slack Bot Actions (обновление данных формы в раскрывающемся списке)
Discord.py — есть ли способ отредактировать отправленное командное сообщение косой черты от бота?
Как мне скопировать сообщение и отправить его снова с помощью моего бота в дискорде?
Numpy `matmul` работает примерно в 100 раз хуже, чем `dot` при просмотре массива
Pandas to_csv, но удалите NaN на уровне отдельной ячейки, не удаляя полную строку или столбец
Как я могу преобразовать словарь, содержащий ключ и значение в виде списка, в фрейм данных panda с одним столбцом для ключей и одним столбцом для значений?
Разделить строку векторизации Python