对数据集进行标记后,我们尝试在数据集上提取 DistiBert 嵌入(数据框中包含 5000 条文本记录),以下代码发生内存错误:
outputs = model(**tokenized_inputs0)
bert_embeddings = outputs.last_hidden_state
因此,我们使用以下代码将数据帧划分为列表:
list_train = [final_Data1[i:i+100] for i in range(0,final_Data1.shape[0],100)]
现在如何提取上面 list_train 上的 DistilBERT 嵌入...??????
如何应用以下代码来提取列表中的 DistilBERT 嵌入...?
输出=模型(**标记化_输入0) bert_embeddings = 输出.last_hidden_state
您可以使用 for 循环来迭代您创建的数据列表。您必须对您的预测进行一些操作以使其超出内存,例如将它们保存到文件中,否则您仍然会耗尽内存。
batch_list = [final_Data1[i:i+100] for i in range(0,final_Data1.shape[0],100)]
for batch in batch_list:
outputs = model(**batch)
bert_embeddings = outputs.last_hidden_state
# do something with your outputs