gpt4 book ai didi

python - pytorch 嵌入索引超出范围

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:03 30 4
gpt4 key购买 nike

我在这里学习本教程 https://cs230-stanford.github.io/pytorch-nlp.html .在那里创建了一个神经模型,使用 nn.Module,带有一个嵌入层,在此处初始化

self.embedding = nn.Embedding(params['vocab_size'], params['embedding_dim'])

vocab_size为训练样本总数,为4000。embedding_dim为50。forward方法相关部分如下

def forward(self, s):
# apply the embedding layer that maps each token to its embedding
s = self.embedding(s) # dim: batch_size x batch_max_len x embedding_dim

像这样将批处理传递给模型时出现此异常模型(train_batch)train_batch 是维度为 batch_sizexbatch_max_len 的 numpy 数组。每个样本都是一个句子,每个句子都被填充以使其具有批处理中最长句子的长度。

File "/Users/liam_adams/Documents/cs512/research_project/custom/model.py", line 34, in forward s = self.embedding(s) # dim: batch_size x batch_max_len x embedding_dim File "/Users/liam_adams/Documents/cs512/venv_research/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in call result = self.forward(*input, **kwargs) File "/Users/liam_adams/Documents/cs512/venv_research/lib/python3.7/site-packages/torch/nn/modules/sparse.py", line 117, in forward self.norm_type, self.scale_grad_by_freq, self.sparse) File "/Users/liam_adams/Documents/cs512/venv_research/lib/python3.7/site-packages/torch/nn/functional.py", line 1506, in embedding return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse) RuntimeError: index out of range at ../aten/src/TH/generic/THTensorEvenMoreMath.cpp:193

这里的问题是嵌入的初始化维度与批处理数组的维度不同吗?我的 batch_size 将保持不变,但 batch_max_len 会随每个批处理而变化。这就是它在教程中的完成方式。

最佳答案

在这里找到答案 https://discuss.pytorch.org/t/embeddings-index-out-of-range-error/12582

我正在将词转换为索引,但我的索引是基于词的总数,而不是 vocab_size,后者是最常用词的较小集合。

关于python - pytorch 嵌入索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56010551/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com