pytorch 如何在libtorch中使用LayerNorm

enyaitl3  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(160)

我注册了一个顺序变量,并将结果保存到名为toPatchEmbedding的成员变量中。
第一个月
在后面的前向函数中,我尝试使用torch::Tensor x = toPatchEmbedding->forward(input);,其中输入是形状为(16,14,14,256)的Tensor。
由于某种原因,对layerNorm的前向调用抛出了一个异常。
“Exception:Exception 0xe06d7363 encountered at address 0x7ffd8e384b2c”(异常:在地址0x7ffd8e384b2c处遇到异常0xe06d7363),我不知道如何调试它。
根据python函数的文档:https://pytorch.org/docs/stable/generated/torch.nn.LayerNorm.html
normalizedShape在Tensor的最后n个维度上应用该函数。其中n是normalizedShape列表的大小。因此输入Tensor的大小匹配,但它仍然不起作用。
我还注意到,当我通过调试器运行程序时,当序列变量被初始化时,如果你看看模块的成员变量,有些变量的值是,所以我认为问题在于初始化序列变量。
Debug Error Image
如果这是相关的,它是在GPU上。
谢谢你的帮助:)

6vl6ewon

6vl6ewon1#

原来是因为Tensor的数据类型不能是torch::kByte。

相关问题