pytorch 面对cuda非法内存错误的问题

mgdq6dx1  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(192)

我尝试在从编码器获得的输出上使用layernorm,其尺寸为(1,497,64,64),即(batch_size,channels,height,width)。我尝试规范化此输入,以便进一步将其提供给流模型。在应用layernorm之前,没有错误,但在应用之后,我得到以下错误:
“运行时错误:cuda运行时错误(77):在/tmp/pip-req-build-irc 6 u2 ci/aten/src/THC/THCReduceAll.cuh:327处遇到非法内存访问”

yzxexxkh

yzxexxkh1#

这听起来像是你在将Layernorm应用到编码器的输出后遇到了一个错误。如果没有更多的上下文,很难诊断这个问题。
这里有两件事你可以检查:

  1. Layernorm输入应为(batch_size, channels, height, width)。请确保channels维度与数据中的要素数量匹配。
  2. LayerNorm是神经网络中常用的一种技术,用于标准化输入Tensor,方法是将输入Tensor的平均值重新调整为零,标准差为1,通常是沿着Tensor的最后一个维度。这是通过减去该维度上Tensor的平均值,然后除以其标准差(数据点和平均值的差值)来实现的。

相关问题