对齐过程经验沉淀

总结迁移模型(不顺利时)的经验:

  1. 先尝试 import oneflow as torch 看能否跑通,如果能否跑通,那就任务结束了。
  2. 如果上一步不顺利的话, 一定不要import oneflow as torch 的前提下去调整、调试代码。而是直接使用 import oneflow as flow,然后利用解释器的报错或者肉眼检查,把所有关于 torch 的依赖,改为对 flow 的依赖。
  3. torchoneflow 模型存储方式不同,如果有加载 pth 存储的模型的需要,建议先将模型格式换成 oneflow 格式,转换参考 代码
  4. 安装最新版 oneflow 需要使用 pip install --pre oneflow -f https://staging.oneflow.info/branch/master/cu112,因为 oneflow 其实不在 pypi 上,在自己的服务器上。
  5. 遇到没有某些模块的问题,解决方法一般是 (1)查看 API文档,确定模块是否缺失;(2)如果模块确实缺失,思考能否使用其他方式拼出;(3)如果思考不出解决方案,可以询问 yaochi 或者 群上询问 zhangxiaoyu。
  6. 出现算子不兼容或者算子缺失等问题,先自己的 issue 上记录,再在 slack 上找 yaochi 确认,确认后再去 https://github.com/Oneflow-Inc/OneTeam/issues/1207#issuecomment-1073432125 这个 comment 反馈。
  7. Flask 和云平台的一些问题和注意事项见 https://github.com/Oneflow-Inc/OneCloud/issues/73 。
  8. oneflow 对接的是 torch 最新版接口。因此有时候缺少对应算子并不是缺少算子,而是新版 torch 更换了接口名称,例如 torch 中 nn.DataParallel 弃用,改用 nn.parallel.DistributedDataParallel,排查这种问题可以通过查询 torch 文档,会有对应的 Warning 信息,如 torch.nn.DataParallel
Back to top