1.明确代码的运行环境!
代码的运行离不开环境的支持,在算法和环境高速更新迭代的现在,明确环境是你正确且友好使用神经网络算法的大前提。总结下来可以分为三类:
物理运行环境
你有可能在你的pc上跑代码,也可能借用各种云平台跑,也可以将网上的集成环境下载到本地然后用它来跑代码。挑选云平台时大家都会挑选CPU,GPU,内存等条件。但是当到自己的电脑上却变得十分模糊,其实很多集成环境的运行和代码运行都要有合适的硬件支持。比如,你的电脑是否支持显卡,显卡是否能达到要求,是否支持cuda或其他显卡类型等等。
python的运行环境
python的运行环境是大家都会关注的,但却有些细节往往会被忽略。大家往往会关注numpy,pytorch,tensorflow等等包。但是却往往会忽略包的版本问题,往往用最新版的包来跑旧版本的代码,最后报错一片。而且,具有相互依赖关系的包之间的版本之间也有严格的对应关系。具体合适的版本和依赖关系,大家可以上网查或者查看相应包的官网。推荐用Anaconda来配置环境,一目了然。
2.看不懂,不会用代码!
当我们学习了网络基本知识,兴致勃勃的来看代码时,忽然发现啥也看不懂。。。。。即使跟着网课一行一行看也要看半天,还要记很多笔记,最后才能理清代码结构。
一般代码可以分为,数据处理部分,网络搭建部分,网络训练与评估部分,网络预测部分,数据存储部分,网络存储部分,外加一个总运行文件(或指令)或者还有相关的网络配置文件。
项目文件看起来一层层文件夹,也不知道每个部分在哪里,更何况网络结构千变万化,存储方式都是不定的。我总结了几个技巧可以快速理清思路。首先,先查看总运行文件和配置文件,因为网络结构一般来说都是固定不需要更改的,而数据传入网络和传出的接口路径信息都会在这两种文件里得到体现,所以读懂这两个文件就对各个部分的文件路径有了了解。然后再沿着文件路径,一步步逐渐深入去查看各个文件夹。总体过一遍就能明白网络的结构了。而且网络的超参数也会存储在总运行文件或者网络的配置文件中。
3.不要放过每个报错信息
很多人在训练网络时,遇到报错却看不懂或者只看最明显的报错。其实显示的报错信息都会在具体的代码中得到体现,读懂报错信息并解决他们能迅速加快我们对算法各部分的理解。如果实在看不懂,就复制搜索,无论是百度,还是chatgpt都会给你解决问题提供方向的。