【报错笔记】Vector for token xxx has 147 dimensions, but previously read vectors have 300 dimensions.

3 篇文章 0 订阅
2 篇文章 0 订阅

关于在pytorch-nlp库中使用词嵌入产生维度不对应错误的原因和解决方式

1.错误

RuntimeError: Vector for token Bolonia has 147 dimensions, but previously read vectors have 300 dimensions. All vectors must have the same number of dimensions.

2.代码

# 使用Glove词向量
from torchnlp.word_to_vector import GloVe
vectors = GloVe()
vectors['hello']

在电脑上运行上述代码的时候,会报上述错误,具体如图:
在这里插入图片描述

3.原因

上述示例代码在初始化GloVe时就产生了错误。在初始化时,要先从国外服务器上下载词嵌入文件,然后加载到内存中。产生错误的原因其实是在加载预训练的词嵌入文件到内存的时候,因为文件太大了内存不足导致溢出。笔者的电脑是8G内存,不够用。

vectors = GloVe()

根据 官方文档.默认下载的词嵌入文件是840B,该文件很大。

4.解决方式

  1. 换一台内存足够大的电脑跑。
  2. 设置参数,下载较小的预训练词向量模型。具体参数可以查看根据 官方文档 或者 源代码。其他词向量模型如FastText、BPEmb也类似。
    例如,选择下载glove.6B.zip,这个文件只有800M+。
# 使用Glove词向量
from torchnlp.word_to_vector import GloVe
vectors = GloVe(name='6B')
vectors['hello'].shape
运行结果如下
torch.Size([300])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值