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