Rea*_*lar 7 python softmax pytorch tensor
所以我很难理解一些关于 Pytorch 集合的术语。我不断遇到关于我的张量范围不正确的相同类型的错误,当我尝试谷歌寻找解决方案时,解释往往更加混乱。
下面是一个例子:
m = torch.nn.LogSoftmax(dim=1)
input = torch.tensor([0.3300, 0.3937, -0.3113, -0.2880])
output = m(input)
Run Code Online (Sandbox Code Playgroud)
我没有发现上面的代码有什么问题,我已经定义LogSoftmax了接受一维输入。所以根据我使用其他编程语言的经验,集合[0.3300, 0.3937, -0.3113, -0.2880]是一个单一的维度。
以上触发了以下错误m(input):
IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
Run Code Online (Sandbox Code Playgroud)
这意味着什么?
我传入了一个一维张量,但它告诉我它期望的范围是[-1, 0], but got 1.
1to的维度会出现错误[-1, 0]?[-1, 0]是什么意思?我搜索了这个错误的解释,我发现像这个链接这样的东西对我作为一个程序员来说毫无意义:
https://github.com/pytorch/pytorch/issues/5554#issuecomment-370456868
因此,我能够通过向张量数据添加另一个维度来修复上述代码。
IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
Run Code Online (Sandbox Code Playgroud)
所以这是有效的,但我不明白如何[-1,0]解释嵌套集合。
进一步的实验表明以下方法也有效:
m = torch.nn.LogSoftmax(dim=1)
input = torch.tensor([[-0.3300, 0.3937, -0.3113, -0.2880]])
output = m(input)
Run Code Online (Sandbox Code Playgroud)
所以dim=1意味着集合的集合,但我不明白这意味着什么[-1, 0]。
当我尝试使用 LogSoftmax(dim=2)
m = torch.nn.LogSoftmax(dim=1)
input = torch.tensor([[0.0, 0.1], [1.0, 0.1], [2.0, 0.1]])
output = m(input)
Run Code Online (Sandbox Code Playgroud)
以上给了我以下错误:
IndexError:维度超出范围(预期在 [-2, 1] 范围内,但得到 2)
再次混淆dim=2等于[-2, 1],因为1值从何而来?
我可以通过将集合嵌套到另一个级别来修复上面的错误,但此时我不明白LogSoftmax期望的是什么值。
m = torch.nn.LogSoftmax(dim=2)
input = torch.tensor([[0.0, 0.1], [1.0, 0.1], [2.0, 0.1]])
output = m(input)
Run Code Online (Sandbox Code Playgroud)
我对这个术语[-1, 0]和[-2, 1]?
如果第一个值是嵌套深度,那么为什么它是负数,第二个数字是什么意思?
没有与此错误相关的错误代码。因此,很难找到有关该主题的文档。这似乎是一个非常常见的错误,人们对此感到困惑,我在 Pytorch 文档中找不到任何专门讨论它的错误。
当指定张量的维度作为函数的参数时(例如m = torch.nn.LogSoftmax(dim=1)),您可以使用正维度索引,第一个维度从 0 开始,第二个维度从 1 开始,依此类推。
或者,您可以使用负维度索引从最后一个维度开始到第一个:-1 表示最后一个维度,-2 表示倒数第二个维度,等等。
示例:
如果您有一个尺寸为b-by- c-by- h-by-的 4D 张量w,则
dim=0访问dim=-4。dim=1访问dim=-3。dim=2“高度”/“垂直”尺寸(第三个)可以通过或访问dim=-2。dim=3“宽度”/“水平”尺寸(第四个)可以通过或访问dim=-1。因此,如果您有 4D 张量dim参数,则可以取 范围内的值[-4, 3]。
在您的情况下,您有一个一维张量,因此dim参数可以是 0 或 -1 (在这种不推荐使用的情况下等于相同的维度)。
| 归档时间: |
|
| 查看次数: |
2419 次 |
| 最近记录: |