林鳞 编译自 GitHub
量子位 出品 | 公众号 QbitAI
新的TensorFlow项目模板来了。
昨天,用户mrgemy95在Reddit上发帖,称这是“TensorFlow项目模板架构的最佳实践”。几小时内,帖子热度迅速上升。
此外,mrgemy95还将代码公布在GitHub上,短短几天就收获了200+个star。
量子位带大家去GitHub上探查一下这个模板。
一个简单且精心设计的结构对于任何深度学习项目来说都是必不可少的,所以在TensorFlow项目中经过大量实践后,mrgemy95等人总结出一个集简洁、文件夹结构的最佳实践和良好的OOP(面向对象的程序设计)的TensorFlow项目模板。
△ 项目架构如上图所示
△ 文件夹结构如上图所示
如何使用这个模板呢?举个例子,假设你想实现VGG模型,你需要按照以下步骤执行:
在模型文件夹中创建一个从“base_model”分类继承来的VGG分类。
重写“build_model”和“init_saver”这两个函数。
前者是实现VGG模型的地方,后者是定义TensorFlow saver的地方。
在trainer文件夹中创建一个从“base_train”分类继承来的VGG trainer。
重写“train_step”和“train_epoch”这两个函数。
在主文件中创建一个会话,并创建“Model”、“Logger”、“Data_Generator”、“Trainer”对象的实例和配置。
将所有这些对象传递给trainer对象,通过调用“trainer.train()”开始你的训练。
之后,你将在模型和trainer文件夹中创建模板文件和一个简单的示例,它将向你展示如何简单尝试第一个模型。
作者表示,之后会考虑用新的TensorFlow数据集API替换数据加载器部分。
最后,附项目GitHub地址:
https://github.com/Mrgemy95/Tensorflow-Project-Template#in-details
“