在Apple M1的MPS上运行PyTorch模型的问题

j13ufse2  于 2023-05-17  发布在  其他
关注(0)|答案(1)|浏览(738)

我试图在我的MacBook Air的MPS上运行我的模型,但出现了这个警告和错误:
用户警告:MPS后端当前不支持运算符“aten::sgn.out”,将回退以在CPU上运行。这可能会影响性能。(在/Users/runner/work/_temp/anaconda/conda-bld/pytorch_1670525498485/work/aten/src/ATen/mps/MPSFallback.mm:11内部触发。)变量._execution_engine.run_backward(#调用C引擎以运行向后传递
用户警告:在ConvolutionBackward 0中检测到错误。导致错误的前向调用的追溯
(在/Users/runner/work/_temp/anaconda/conda-bld/pytorch_1670525498485/work/torch/csrc/autograd/python_anomaly_mode.cpp:119内部触发。)变量._execution_engine.run_backward(#调用C
引擎以运行反向传递
File“/Users/user/miniconda3/envs/torch/lib/python3.10/site-packages/torch/autograd/init.py”,line 197,in backward Variable._execution_engine.run_backward(# Calls into the C++ engine to run the backward pass RuntimeError:函数“ConvolutionBackward 0”在其第0个输出中返回了nan个值。我的系统规格是:MacOS:Ventura 13.2芯片Apple M1 Python 3.10.9 PyTorch 1.13.1

k10s72fa

k10s72fa1#

在ConvolutionBackward0中检测到错误的第二个警告,该警告导致对前向调用进行追溯。

  • 错误消息指示ConvolutionBackward0函数在其第0个输出中返回了nan(非数字)值,这导致了运行时错误。
  • “ConvolutionBackward0”函数用于计算卷积神经网络中的梯度,通常用于图像处理任务。

1.错误消息表明网络的反向传递可能存在问题,这可能是由多种因素引起的,例如:
1.权重初始化错误
1.不正确的网络体系结构或
1.训练数据不足。
1.用于培训的输入或标签的问题。
您可以尝试运行不同型号的计算机,以查看问题是否仍然存在。这将排除M1的问题。如果它在其他系统上工作,您可能需要将PyTorch更新到最新版本,因为它可能是您的PyTorch安装的一些问题。
此外,虽然PyTorch支持M1芯片,但可能存在一些与特定版本的PyTorch和Python的兼容性问题。PyTorch已经发布了专门针对M1芯片优化的版本,建议使用这些版本以获得最佳性能。此外,与PyTorch一起使用的一些包和库可能尚未针对M1芯片进行完全优化,这也可能导致兼容性问题。
我们可以认为这是一个兼容性问题,因为你的第一个问题是“aten::sgn.out”目前在MPS后端不受支持。

  • MPS是一项功能,使PyTorch能够在Apple M1芯片上运行,这些芯片基于与传统CPU不同的架构,需要不同的优化。
  • 由于'aten::sgn.out'目前在MPS上不受支持,因此它主要是一个兼容性问题,与PyTorch模型无关。

相关问题