#deep-learning #nlp #pytorch #bert-language-model #simpletransformers
#глубокое обучение #нлп #пыторч #берт-язык-модель #простые преобразователи
Вопрос:
Я новичок в НЛП. У меня есть модель, которую я настроил на набор данных с помощью простых преобразователей, которые я использовал для загрузки следующим образом :
from simpletransformers.language_representation import RepresentationModel model = RepresentationModel(model_type='bert',model_name='./new_model',use_cuda=False)
Теперь я хочу использовать веса слоя пула в формате pickle и использовать их в новом кодере-декодере архитектура кодера-декодера выглядит следующим образом:
вход:размер 768 , пул: размер 768 , скрытый: размер 3072, пул:728 , выход:размер 768
который я реализовал так(я не уверен в этом)
import torch.nn.functional as F class Autoencoder(nn.Module): def __init__(self): super(Autoencoder, self).__init__() # encoder self.input = nn.Linear(in_features=768, out_features=768) self.pool = nn.Linear(in_features=768, out_features=768) self.hidden = nn.Linear(in_features=768, out_features=3072) self.pool2 = nn.Linear(in_features=3072, out_features=768) self.output = nn.Linear(in_features=768, out_features=768) def forward(self, x): x = F.relu(self.input(x)) x = F.relu(self.pool(x)) x = F.relu(self.hidden(x)) x = F.relu(self.pool2(x)) x = F.relu(self.output(x)) return x
Теперь я знаю , что могу загрузить слой пула вот так:
model.bert.pooler.state_dict()
Но это, похоже, не работает для простых трансформаторов .
Как я могу сохранить слой пула в формате рассола ? И как я могу загрузить эти грузы в этот новый класс?
Я был бы очень рад, если бы вы ответили мне