Python 加速程序
下面是Python 加速程序,python,Python,下面是encode from transformers import BertTokenizer def encode(self, document): tokenizer = BertTokenizer.from_pretrained("bert-base-uncased") return tokenizer(document, max_length=50, return_
encode
from transformers import BertTokenizer
def encode(self, document):
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
return tokenizer(document,
max_length=50,
return_tensors='pt',
padding=True,
truncation=True)
当我跑的时候
start = time.process_time()
train_articles = [self.encode(document) for document in dataset["train"]["article"][:100]]
print("Time:", time.process_time() - start)
输出为
时间:34.859681388
。请注意,dataset[“train”][“article”]
中的每个元素都是一个大约47个句子的列表,每个句子平均15个单词。只处理100份文件的过程相当长。我是编程新手。有没有办法加快这个过程?我必须对100000个文档运行self.encode
,因此我必须找到一种方法来加快进程。提高性能的一种方法是使用多线程模式。在您的情况下,如果要在流程中多次调用此函数,最好采用Python线程:
import threading
thd1 = threading.Thread("thread-1").spawn(encode)
for i in range(10):
thd1.start
现在,您的速度提高了十倍。如果您是“编程新手”,并且您的任务是加快代码的速度-而且问题域似乎是相对高级的(您没有告诉我们任何有用的内容,但从名称来看,它似乎与神经网络或自然语言处理有关?),那你的头脑就非常复杂了。我认为在这里不可能直接帮助你。您应该采取的第一步是减少“编程新手”。没有捷径可走。