1 系统环境
- 硬件环境(Ascend/GPU/CPU): Ascend
- MindSpore版本: mindspore=2.6.0
- 执行模式(PyNative/ Graph): 不限
- Python版本: Python=3.9
- 操作系统平台: Linux
2 报错信息
2.1 问题描述
在边缘设备部署文生图服务。使用mindspore_hub将`Hugging Face的 runwayml/stable-diffusion-v1-5 转换后,输入 prompt “a red apple on white table” 生成图像中苹果呈绿色或青灰色。
3 根因分析
MindSpore的VAE解码器在昇腾设备上默认启用fused layernorm算子,该算子在低精度下对颜色通道(R/G/B)的归一化存在偏差,尤其在sigmoid输出阶段放大误差,因此会出现推理偏差。
4 解决方案
可以通过设置,将fused layernorm算子的计算关闭掉,就能避免计算误差。
from mindspore import context
context.set_context(enable_fused_norm=False)