#python-3.x #tensorflow #keras #nlp
#python-3.x #тензорный поток #keras #nlp
Вопрос:
Как мне использовать предварительно обученную модель BERT, например bert-base-uncased
, в качестве весов в слое встраивания в Keras?
В настоящее время я создаю встраивания word с использованием модели BERT, и это занимает много времени. И я присваиваю эти веса, как в примере, показанном ниже
model.add(Embedding(307200, 1536, input_length=1536, weights=[embeddings]))
Я искал в Интернете, но метод приведен в PyTorch. Мне нужно сделать это в Keras. Пожалуйста, помогите.
Комментарии:
1. У встраивания есть
embeddings_initializer
аргументы, вы могли бы использовать его следующим образомembeddings_initializer=np.ones((307200, 1536))
.2. На самом деле это не то, о чем я спрашивал. Если я инициализирую
embeddings_initiliazer
, как вы сказали, где я передам предварительно обученную модель BERT? В моем кодеweights
это слой встраивания, который я сгенерировал вручную. Вместо этого мне нужна предварительно обученная модель для весов.3. Насколько я понимаю, вы просто хотите передать предварительно обученный режим BERT новой модели и использовать предварительно обученные вложения для точной настройки новой модели, верно?
4. Да, я хочу, чтобы в моей модели использовались предварительно обученные вложения BERT.
5. Затем концентратор. KerasLayer — это то, что вы должны использовать. Вы можете сначала сохранить модель BERT в
SavedModel
формате, а затем загрузить ее с помощью hub. KerasLayer как слой keras, который может быть добавлен к другим моделям.