计算机视觉学习分享

如何阅读和学习深度学习项目代码

2021-05-27  本文已影响0人  pprpp

【前言】现在深度学习项目代码量越来越大,并且单个文件的量也非常的大。笔者总结了一些专家的经验并结合自己看的一些项目,打算总结一下如何探索和深入一个深度学习项目库。笔者pprp,未经允许不得擅自转发。

1. 基础知识

首先,需要保证有一定的深度学习基础知识,吴恩达的深度学习课还有斯坦福大学的CS231n都是不错的入门教程,只需要有大学数学的基础就可以看懂。

然后,需要对Linux系统使用有一定的了解,一般选择Ubuntu系统作为主力系统,了解一下基础的系统命令就可以了,比如rm,ls,cd,cat,vim,sudo,find,df,top等,在B站上搜索一下Linux的视频,很快就可以入门。之后遇到新的命令只需要查询API即可。

其次,还需要保证对python语言和深度学习框架的了解,python上手是很快的,可以看一下菜鸟教程或者莫烦python教程,上首页很快。深度学习框架方面可以买一些书籍,边看边敲,找一个小项目敲一敲,了解一下大部分API就已经达到上手水平了。深度学习框架一般选tensorflow、pytorch,因为大部分项目大多是基于这两个框架的。他们官方网站的教程也是非常不错的参考,可以看看官方提供的教程,跑一下github上提供的demo。

最后,营造科研的环境,可以关注一些领域相关的大牛、公众号,也可以加入一些交流群,多和群友交流,尽可能提升领域的常识。不要乱问问题,一定要有自己的思考和想法,然后再到群里问问题和交流。

2. 项目分析阅读

从Github上拿到一个项目,可以按照以下的步骤进行分析和阅读。

.
├── build.sh # 环境构建
├── eval_ofa_net.py
├── eval_specialized_net.py # 验证专用网络
├── figures
│   ├── cnn_imagenet_new.png
│   ├── diverse_hardware.png
│   ├── imagenet_80_acc.png
│   ├── ofa-tutorial.jpg
│   ├── overview.png
│   └── video_figure.png
├── LICENSE
├── ofa 
│   ├── imagenet_classification 
│   │   ├── data_providers # 数据加载
│   │   ├── elastic_nn # 算法核心模块
│   │   ├── __init__.py
│   │   ├── networks # 网络构建
│   │   └── run_manager # 训练代码核心逻辑
│   ├── __init__.py
│   ├── model_zoo.py # 模型库
│   ├── nas # nas相关工具
│   │   ├── accuracy_predictor
│   │   ├── efficiency_predictor
│   │   ├── __init__.py
│   │   └── search_algorithm
│   ├── tutorial # 教程
│   │   ├── accuracy_predictor.py
│   │   ├── evolution_finder.py
│   │   ├── flops_table.py
│   │   ├── imagenet_eval_helper.py
│   │   ├── __init__.py
│   │   └── latency_table.py
│   └── utils # 工具库
│       ├── common_tools.py
│       ├── flops_counter.py
│       ├── __init__.py
│       ├── layers.py
│       ├── my_dataloader
│       ├── my_modules.py
│       ├── pytorch_modules.py
│       └── pytorch_utils.py
├── README.md # 项目介绍,初次接触需要阅读
├── requirements.txt # 环境文件
├── setup.py # pip构建环境所需文件
├── train_ofa_net.py # 训练脚本
└── tutorial # 教程
    ├── local_lut.npy
    ├── ofa.ipynb
    ├── ofa_resnet50_example.ipynb
    └── README.md

参考

https://www.zhihu.com/question/26480537

https://www.zhihu.com/question/29416073/answer/44301979

https://github.com/phodal/articles/issues/14

上一篇下一篇

猜你喜欢

热点阅读