我使用 Brown 语料库和 gensim 训练了一个 word2vec 模型,如下所示:
model = gensim.models.Word2Vec(brown.sents(),min_count = 5,
vector_size = 30, window = 5, negative=5)
训练只需要几秒钟。
然后我尝试使用 pyTorch 构建 word2vec 模型。据我估计,培训需要5个多小时。
我预计速度会有所不同,因为 Gensim 的 word2vec 使用优化的 C 例程。然而,我没想到会有这么大的差异。
pyTorch 训练花费这么多时间正常吗?对于这两种情况,我都没有使用任何 GPU。在标准 4-cpu Mac 上,我应该期望 PyTorch 执行此任务的运行时间是多少?
您还没有提到您正在运行什么 PyTorch 代码。
但是,当 Gensim 拥有 both 其 word2vec 例程的简单纯 Python 实现以及备用 Cython 和 BLAS 优化路径时,普通 Python 的运行速度通常是 80-120 倍较慢 .
如果您运行的 PyTorch 代码是纯 Python 的,并且进一步可能主要是为了说明其目的 – 甚至没有考虑 Python 效率,或者可能没有尝试使用多个线程/进程 – 那么速度会从“不到一分钟” ” 到“几个小时”是合理的。