pytorch - Pytorch 嵌入层中的 BERT 嵌入
问题描述
我正在使用词嵌入。我使用“BERT”获得了词嵌入。
我有这样的数据
1992 regular unleaded 172 6 MANUAL all wheel drive 4 Luxury Midsize Sedan 21 16 3105 200
并作为标签:
df['Make'] = df['Make'].replace(['Chrysler'],1)
我尝试将嵌入作为 LSTM 输入。
对 BERT 使用以下代码:
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
bert_model = BertModel.from_pretrained('bert-base-uncased')
用于标记此代码:
def tokenize_text(df, max_seq):
return [
tokenizer.encode(text, add_special_tokens=True)[:max_seq] for text in df
]
def pad_text(tokenized_text, max_seq):
return np.array([el + [0] * (max_seq - len(el)) for el in tokenized_text])
def tokenize_and_pad_text(df, max_seq):
tokenized_text = tokenize_text(df, max_seq)
padded_text = pad_text(tokenized_text, max_seq)
return padded_text
和 :
train_indices = tokenize_and_pad_text(df_train, max_seq)
对于 BERT 嵌入矩阵:
def get_bert_embed_matrix():
bert = transformers.BertModel.from_pretrained('bert-base-uncased')
bert_embeddings = list(bert.children())[0]
bert_word_embeddings = list(bert_embeddings.children())[0]
mat = bert_word_embeddings.weight.data.numpy()
return mat
embedding_matrix = get_bert_embed_matrix()
和 LSTM 模型:
embedding_layer =Embedding(embedding_matrix.shape[0], embedding_matrix.shape[1], weights=[embedding_matrix], input_length=max_seq_len, trainable=True)
model = Sequential()
model.add(embedding_layer)
model.add(LSTM(128, dropout=0.3, recurrent_dropout=0.3))
model.add(Dense(1, activation='softmax'))
model.compile(
optimizer=tf.keras.optimizers.Adam(1e-5),
loss="categorical_crossentropy",
metrics=["accuracy"],
)
model.summary()
对于模型适合此代码:
model.fit(train_indices, y_train, epochs=20, verbose=1)
我给出这样的输出:
Epoch 1/20
1/1 [==============================] - 3s 3s/step - loss: 0.0000e+00 - accuracy: 0.3704
Epoch 20/20
1/1 [==============================] - 0s 484ms/step - loss: 0.0000e+00 - accuracy: 0.3704
我不知道我错过了什么。
首先,我们能做些什么呢?
其次,我们如何实现 Pytorch 模型?
非常感谢。
解决方案
推荐阅读
- java - 我可以从 /info/{login} 获得价值吗?
- html - 将图标移至列表左侧
- firebase - 提供者从流中获取价值的延迟
- python - 在我的绘图上格式化 DateTime 轴(Python)
- android - 在 kotlin android 中使用 var 或 val?
- mysql - 如何在 MySQL 中使用 LIKE 而不删除清理?
- django - Django Heroku 部署未找到模块
- python - Django静态文件未加载
- debugging - JetBrains Rider 不评估表达式
- reactjs - Next.js 可以从 Asp.Net Core API 获取数据吗?