TF
本博客旨在探索github科研项目的写法,从而达到能够快速理解科研项目和自己写科研项目的目的
前言:
初学者,比如我,很难读懂并理解github上作者的开源代码,以至于每次只能照办别人的代码,顶多就是把别人的搞到能跑,但这并不是所谓的代码复现,也很难对源码进行改进。
有的人说:看多了自然就懂了,写多了自然就会了。其实不然,纵然把网上Tensorflow的AlexNet,VGG等看懂,学会的不过是基本的、不成体系的写法,一般是把所有内容放在一处,并不带有复杂的数据集处理,模型保存与恢复,命名空间管理等基本功能。
所以建立项目思维是很重要的,本博文旨在总结和归纳TensorFlow科研项目的共同点,让我们先从基本目录结构讲起。
正文
当我们看过超过三篇论文的代码复现就会发现,无论是pytorch还是tensorflow项目,都有相似的目录结构!
总结来说,我个人喜欢的目录结构如下:
-项目名
-config(可选,放入配置文件)
-data(放入数据集文件夹的地方)
-network(当网络架构复杂时提供网络架构,如WarpGAN中包含MUNIT,或者CartoonGAN中包含VGG的情况,可以分文件写)
-utils(提供辅助函数,如检查文件夹是否存在)
test.py
train.py
当运行代码后,目录结构变成如下:
-项目名
-config
- checkpoint(代码中产生,存放检查点用以模型复原)
- logs(代码中产生,存放TensorFlow日志,用以启动Tensorboard)
- samples(train.py产生的中间结果)
- results(test.py产生的结果)
-data
-network
-utils
test.py
train.py