如何从包含 5000 条记录的列表中提取 DistilBERT 嵌入..?

问题描述 投票:0回答:1

对数据集进行标记后,我们尝试在数据集上提取 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

list extract tokenize embedding distilbert
1个回答
0
投票

您可以使用 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
© www.soinside.com 2019 - 2024. All rights reserved.