shaoheshaohe 发表于 2020-3-11 09:16:16

常见问题的问答

本帖最后由 易学智能 于 2020-3-11 09:21 编辑

我的网络是cpu训练的,是不是和gpu训练用的代码不同,是否需要改?
答:取决于你的代码与所用框架,需具体情况具体分析。下面列出一些常用情况。
1. 使用Tensorflow且在代码中未指定设备,代码无需修改,Tensorflow会自动发现GPU并利用它。
2. 使用Tensorflow且在代码中指定了设备,如包含"devic: cpu0"这样的代码片段,则Tensorflow只会去寻找指定的设备。
3. 使用pytorch,需要修改代码。用于CPU与GPU,pytorch的数据格式不一样,需做转换。方法不复杂,具体请上网查询。
4. 总的原则就是看两点:一是代码中是否指定了设备;二是代码中的数据格式是否与设备相关。若是,则可能需要修改代码。


我现在用的单卡,改成多卡的为何不能用?代码是不是要改?
答:一般情况下需要修改代码。如果是数据并行,现在的框架能够很好地支持多卡,代码的修改量很少,具体请查询网上教程。


我现在用的是1080ti,改用2080ti,为何不能用?代码是否需要改?
答:原因并不在显卡类型,而在于你所选的开发环境。
1. 2080ti是CUDA10,若你的代码是基于CUDA9/8开发,则有极少部分功能会异常。你没有看错,CUDA10并不完全向后兼容。
2. 既然2080ti用的是CUDA10,那么所装的开发框架,版本也会比较新。你没有看错,新版本的开发框架,也并不完全向后兼容。比如,在1080ti+pytorch0.4可运行的代码,在2080ti+pytorch1.3,可能就运行不了。
3. 以上两种情况,代码修改可能都比较复杂。对初学者,不建议修改代码,而是回到1080ti环境。若需要加速,可考虑使用多卡1080ti。




页: [1]
查看完整版本: 常见问题的问答