#python-3.x #pytorch #spss #pre-trained-model
#python-3.x #pytorch #spss #предварительно обученная модель
Вопрос:
Привет, я пытаюсь загрузить некоторые предварительно подготовленные модели из .sav
файлов, и пока ничего не работает. Модели изначально были созданы в pytorch, и когда я открываю raw-файл в vs-code, я вижу, что вся соответствующая информация была сохранена правильно.
Я пробовал следующие библиотеки:
sklearn.externals.joblib
pickle
scipy.io
pyreadstat
Каждая библиотека либо выдавала мне ошибку (например, wrong timestamp
или signature mismatch
), либо просто возвращала int
вместо объекта python.
Модели можно загрузить по этой ссылке.
Комментарии:
1. если файлы были сохранены с помощью
torch.save
, то вам следует попробоватьtorch.load
загрузить их2. @CertainlyNotAdrian Я думаю, что ответил на ваш вопрос и даже протестировал решение. Вы не возражаете отметить мой ответ принятым? Если нет, то, пожалуйста, укажите в комментарии, где, по вашему мнению, не хватает моего ответа, чтобы я мог обратиться к нему.
Ответ №1:
Вам нужно использовать PyTorch для загрузки моделей. Кроме того, вам также необходимо исходное определение модели, поэтому вам нужно клонировать репозиторий авторов. В вашем примере это репозиторий:
git clone https://github.com/tbepler/protein-sequence-embedding-iclr2019.git
Затем вы можете открыть модель с помощью torch.load()
. Обратите внимание, что вам нужно определение модели в вашем path (вы можете просто запустить python из каталога repo).
Затем просто открыть файл:
import torch
model = torch.load('<downloaded models>/<model name>.sav')
print(model)
В последней строке выводится определение модели. Например, me_L1_100d_lstm3x512_lm_i512_mb64_tau0.5_p0.05_epoch100.sav
выдал следующий вывод:
OrdinalRegression(
(embedding): StackedRNN(
(embed): LMEmbed(
(lm): BiLM(
(embed): Embedding(22, 21, padding_idx=21)
(dropout): Dropout(p=0)
(rnn): ModuleList(
(0): LSTM(21, 1024, batch_first=True)
(1): LSTM(1024, 1024, batch_first=True)
)
(linear): Linear(in_features=1024, out_features=21, bias=True)
)
(embed): Embedding(21, 512, padding_idx=20)
(proj): Linear(in_features=4096, out_features=512, bias=True)
(transform): ReLU()
)
(dropout): Dropout(p=0)
(rnn): LSTM(512, 512, num_layers=3, batch_first=True, bidirectional=True)
(proj): Linear(in_features=1024, out_features=100, bias=True)
)
(compare): L1()
)