昇腾故障案例详情页

运行迁移后代码提示“Segmentation fault”

更新时间: 2023/05/11

暂无评分

问题信息

问题来源产品大类关键字
官方MindStudioSegmentation fault、numpy、版本、迁移后

问题现象描述

运行转换后代码无报错,仅提示“Segmentation fault”信息。

原因分析

可能原因一:

代码中引用了tensorboard或第三方库中包含tensorboard,以下为已知的引用tensorboard的第三方库。

  • wandb:若该库仅用来打log,可以删除该库的调用。
  • transformers:该库深度绑定tensorflow、tensorboard。

可能原因二:

训练脚本中包含两个0维Tensor在不同设备上进行比较的代码,当前该比较不支持在torch_npu上运行。

解决措施

原因一解决措施:

注释掉相关的Summary、Writer调用即可规避该错误。Summary、Writer多用于记录日志和绘图,不影响网络跑通和精度收敛。

原因二解决措施:

根据屏显信息,定位脚本中是否存在两个0维Tensor在不同设备上进行比较的代码,需要用户手动修改为在同一设备上进行比较,示例如下:

修改前,在CPU和NPU上进行比较:

a = torch.tensor(123)
b = torch.tensor(456).npu()
print(a == b)

修改后,添加加粗字体信息,修改为同在NPU上进行比较:

a = torch.tensor(123).npu()
b = torch.tensor(456).npu()
print(a == b)

本页内容

该页面对您有帮助吗?
我要评分