开发者社区 > 云原生 > Serverless > 正文

函数计算,请问一下 我在执行Stable Diffusion的时候,一直报错: NansExc

函数计算,请问一下 我在执行Stable Diffusion的时候,一直报错:

NansException: A tensor with all NaNs was produced in Unet. This could be either because there's not enough precision to represent the picture, or because your video card does not support half type. Try setting the "Upcast cross attention layer to float32" option in Settings > Stable Diffusion or using the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.

该怎么办呀后面,模型是我自己的 插件没装。

展开
收起
码字王 2023-08-31 18:08:02 1055 0
2 条回答
写回答
取消 提交回答
  • 得看下是不是模型训练有问题,或者文件损坏了

    此答案来自钉钉群“阿里函数计算官网客户”

    2023-09-01 18:32:54
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    我已经认真阅读了 你的问题:

    【 函数计算,请问一下 我在执行Stable Diffusion的时候,一直报错: NansExc

    并思考了

    建议如下:


    这个错误是由于在执行 Stable Diffusion 过程中,出现了全为 NaN 的张量。这可能是因为图片精度不足,或者您的显卡不支持 half 类型。为了解决这个问题,您可以尝试以下方法:1. 调整设置:在 Stable Diffusion 的设置中,将 "Upcast cross attention layer to float32" 选项设置为 True。这将使得张量的精度更高,可能有助于解决全为 NaN 的问题。2. 使用命令行参数:在运行 Stable Diffusion 时,添加 --no-half 命令行参数。这将禁用 half 类型的张量,并可能有助于解决问题。3. 禁用 NaN 检查:使用 --disable-nan-check 命令行参数,以禁用对 NaN 的检查。这可能会使您的代码在出现 NaN 时继续运行,但请注意,这可能会导致您的模型产生不准确的结果。请注意,这些方法可能会对您的模型的性能和精度产生一定的影响。在尝试这些方法之前,请确保您了解这些影响,并根据您的需求进行权衡。希望这些建议能帮助您解决问题。如果您还有其他疑问,请随时提问。

    2023-08-31 18:52:15
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载