问题标签 [torchtext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
95 浏览

python - 矩阵乘法维度令人困惑

我正在关注本教程https://pytorch.org/tutorials/beginner/nlp/deep_learning_tutorial.html#example-logistic-regression-bag-of-words-classifier

nn.Linear(vocab_size, num_labels) 表示矩阵形状为num_labels x vocab_size

bow_vector 尺寸是1 x vocab_size,nn.linear 的预期输入是batch_size x features

现在,我们将num_labels x vocab_size矩阵乘以1 x vocab_size。因此,维度与矩阵乘法不匹配。我在这里想念什么?:思维:

https://discuss.pytorch.org/t/matrix-multiplication-dimentions-confusing/79376?u=abhigenie92

0 投票
1 回答
267 浏览

pytorch - 在 torchtext 中读取 csv.gz 文件

Pandas 的 read_csv 也适用于 csv.gz。

有没有办法用 PyTorch 实现类似的效果?https://torchtext.readthedocs.io/en/latest/data.html#torchtext.data.Dataset似乎没有这样的选择。

0 投票
2 回答
769 浏览

pytorch - 如何从输入 ID 中获取填充掩码?

考虑如下所示的一批 4 个预处理句子(标记化、数字化和填充):

令牌的0状态。[PAD]

因此,生成与在位置分配零并将一个分配给其他输入数据(句子标记)padding masking相同形状的张量的有效方法是什么?batch[PAD]

在上面的示例中,它将类似于:

0 投票
1 回答
2592 浏览

pytorch - 使用 BERT 进行序列标记

我正在使用由嵌入层和 LSTM 组成的模型在 pytorch + torchtext 中执行序列标记。我已经标记了这些句子。

如果我使用自训练或其他预训练的词嵌入向量,这很简单。

但是,如果我使用 Huggingface 转换器BertTokenizer.from_pretrained,并且分别在句子的开头和结尾添加了BertModel.from_pretrained一个'[CLS]'和标记。'[SEP]'所以模型的输出变成了一个比标签/目标序列长两个元素的序列。

我不确定的是:

  1. 是否需要这两个标签才能BertModel“正确”嵌入句子的每个标记?
  2. 如果需要它们,我可以在 BERT 嵌入层之后、LSTM 输入之前将它们取出,以便输出中的长度正确吗?
0 投票
0 回答
160 浏览

python - Pytorch 和 Keras 实现在文本分类中的巨大性能差异

我已经在 Keras 和 Pytorch 中实现了 CNN,用于多标签文本分类任务。两种实现以两种截然不同的表现结束。带有 Keras 的 CNN 明显优于带有 Pytorch 的 CNN。两者都使用内核大小为 4 的一层 CNN。

Pytorch 版本的微 F1 得分为 0.023宏 F1 得分为 0.47。该模型如下图所示(更多细节在 colab notebook 中):

Keras 版本的微 F1 得分为 0.70宏 F1 得分为 0.56。该模型如下图所示(更多细节在 colab notebook 中):

我认为我的 Pytorch 实现有问题。任何评论表示赞赏。我为 Pytorch 和 Keras 的完整实现创建了一个 colab notebook。随意复制并运行它。请赐教我在 Pytorch 实现中做错的任何事情。谢谢。

0 投票
1 回答
621 浏览

deep-learning - 带有torchtext的Pytorch LSTM的输入尺寸有问题

问题

我正在尝试使用 LSTM 构建文本分类器网络。我得到的错误是:

细节

数据是json,看起来像这样:

torchtext用来加载数据。

我的 LSTM 看起来像这样

我最终得到了以下尺寸inputslabels

我初始化的隐藏张量看起来像:

问题

我试图了解每个步骤的尺寸应该是多少。隐藏维度应该初始化为 (4, 600, 256) 还是 (4, 64, 256)?

0 投票
1 回答
73 浏览

machine-learning - Vocab 和 Integer(一个热门)表示是如何存储的,('string', int)元组在 torchtext.vocab() 中的含义是什么?

我正在尝试训练RNN二进制分类。我的词汇由 1000000 个单词组成,请找到以下输出...

text_field = torchtext.data.Field(tokenize=word_tokenize)

文档说:

我无法理解。

有人可以通过给出每一个的直觉来解释这些是什么吗?

例如,如果the由 表示4,那么是否意味着如果一个句子包含单词the

  1. 位置 4 会是 1 吗?或者
  2. 它会在位置 464796 处为 1 还是
  3. 464796 的位置会是 4 吗?

当有多个时会发生什么the

0 投票
2 回答
2811 浏览

python - 修剪模型不会提高推理速度或减小模型大小

我正在尝试在 PyTorch 中修剪我的模型torch.nn.utils.prune,它提供 2 个张量,

  1. 一个是原始重量和
  2. 另一个是包含 0 和 1 的掩码,可帮助我们关闭网络中的某些连接。

我已经尝试了这两种解决方案,但都没有提高推理速度:

  1. 使用剪枝后的网络来推断哪个会先关闭一些与掩码的连接,然后再运行推断。
  2. 使用掩码将原始权重归零,然后从 state_dict 中删除掩码以进行推断。

有没有办法通过模型张量和掩码来提高速度?与 0 的非零浮点数相乘不会比将 2 个浮点数相乘更快吗?
这是我的修剪功能和修剪速度计算过程:

测试推理速度第一种情况:

测试推理速度第二种情况:

更新
我发现torch有一个稀疏模块,如果我们修剪足够的参数,它可以减少内存使用,但它还不支持nn.Module,只有Tensor对象。这里有一些有用的链接:
https ://github.com/pytorch/pytorch/issues/36214#issuecomment-619586452
https://pytorch.org/docs/stable/sparse.html

0 投票
1 回答
237 浏览

pytorch - 使用 torchtext 微调嵌入 - nn.Embedding 与 nn.Embedding.from_pretrained

我一直在使用预训练嵌入(Glove),并希望对这些进行微调。我目前使用这样的嵌入:

我是否应该简单地设置 requires_grad=True 以允许训练嵌入?或者我应该做这样的事情

这些是否等效,我是否有办法检查嵌入是否得到训练?

0 投票
0 回答
302 浏览

amazon-web-services - Amazon sagemaker 生命周期配置不起作用

我在 Amazon sagemaker 中有以下生命周期配置文件

但是,当我尝试在 pytorch_conda_p36 虚拟环境中的 jupyter 笔记本上导入 torchtext 时,我得到一个找不到模块的错误

这是我的代码

我得到的错误如下