PyTorch 1.0 загрузка весов VGGFace2 в Python3.7 - PullRequest
0 голосов
/ 23 марта 2019

Я использую Python3.7 и PyTorch 1.0 для разработки системы распознавания лиц.Я хочу использовать предтренированную модель VGGFace2 Resnet50, как описано здесь , в качестве экстрактора функций.Я скачал модель и вес.Я запускаю следующие коды, как говорится в readme проекта:

MainModel = imp.load_source('MainModel', 'resnet50_128_pytorch.py') 
model = torch.load('resnet50_128_pytorch.pth')

Первая строка выполнена, как и ожидалось, но во второй строке я получил

кодек 'ascii' не может декодировать байт 0xc3в позиции 1124: порядковый номер не в диапазоне (128)

Я искал в Stackoverflow и в Google и увидел, что это может быть связано с этой моделью, сохраненной в Python2, и загрузка из Python3 создает проблему.Есть ли способ, которым я могу решить это?

Спасибо.

1 Ответ

1 голос
/ 23 марта 2019

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

from functools import partial
import pickle
pickle.load = partial(pickle.load, encoding="latin1")
pickle.Unpickler = partial(pickle.Unpickler, encoding="latin1")
MainModel = imp.load_source('MainModel', 'resnet50_ft_pytorch.py') 
model = torch.load('resnet50_ft_pytorch.pth', map_location=lambda storage, loc: storage, pickle_module=pickle)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...