Tensorflow项目实战(一)--基本目录结构

时间:2024-03-31 13:27:02

TF


本博客旨在探索github科研项目的写法,从而达到能够快速理解科研项目和自己写科研项目的目的

前言:

初学者,比如我,很难读懂并理解github上作者的开源代码,以至于每次只能照办别人的代码,顶多就是把别人的搞到能跑,但这并不是所谓的代码复现,也很难对源码进行改进。

有的人说:看多了自然就懂了,写多了自然就会了。其实不然,纵然把网上Tensorflow的AlexNet,VGG等看懂,学会的不过是基本的、不成体系的写法,一般是把所有内容放在一处,并不带有复杂的数据集处理,模型保存与恢复,命名空间管理等基本功能。

所以建立项目思维是很重要的,本博文旨在总结和归纳TensorFlow科研项目的共同点,让我们先从基本目录结构讲起。

正文

当我们看过超过三篇论文的代码复现就会发现,无论是pytorch还是tensorflow项目,都有相似的目录结构!

Tensorflow项目实战(一)--基本目录结构

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