0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

提出一个快速启动自己的 TensorFlow 项目模板

MqC7_CAAI_1981 2018-02-07 11:47 次阅读

作为最为流行的深度学习资源库,TensorFlow 是帮助深度学习新方法走向实现的强大工具。它为大多数深度学习领域中使用的常用语言提供了大量应用程序接口。对于开发者和研究人员来说,在开启新的项目前首先面临的问题是:如何构建一个简单明了的结构,本文或许可以为你带来帮助。

TensorFlow 项目模板

简洁而精密的结构对于深度学习项目来说是必不可少的,在经过多次练习和 TensorFlow 项目开发之后,本文作者提出了一个结合简便性、优化文件结构和良好 OOP 设计的 TensorFlow 项目模板。该模板可以帮助你快速启动自己的 TensorFlow 项目,直接从实现自己的核心思想开始。

这个简单的模板可以帮助你直接从构建模型、训练等任务开始工作。

目录

概述

详述

项目架构

文件夹结构

主要组件

模型

训练器

数据加载器

记录器

配置

Main

未来工作

概述

简言之,本文介绍的是这一模板的使用方法,例如,如果你希望实现 VGG 模型,那么你应该:

在模型文件夹中创建一个名为 VGG 的类,由它继承「base_model」类

classVGGModel(BaseModel):

def __init__(self, config):

super(VGGModel, self).__init__(config)

#call the build_model and init_saver functions.

self.build_model()

self.init_saver()

覆写这两个函数 "build_model",在其中执行你的 VGG 模型;以及定义 TensorFlow 保存的「init_saver」,随后在 initalizer 中调用它们。

def build_model(self):

# here you build the tensorflow graph of any model you want and also define the loss.

pass

def init_saver(self):

#here you initalize the tensorflow saver that will be used in saving the checkpoints.

self.saver = tf.train.Saver(max_to_keep=self.config.max_to_keep)

在 trainers 文件夹中创建 VGG 训练器,继承「base_train」类。

classVGGTrainer(BaseTrain):

def __init__(self, sess, model, data, config, logger):

super(VGGTrainer, self).__init__(sess, model, data, config, logger)

覆写这两个函数「train_step」、「train_epoch」,在其中写入训练过程的逻辑。

def train_epoch(self):

"""

implement the logic of epoch:

-loop ever the number of iteration in the config and call teh train step

-add any summaries you want using the sammary

"""

pass

def train_step(self):

"""

implement the logic of the train step

- run the tensorflow session

- return any metrics you need to summarize

"""

pass

在主文件中创建会话,创建以下对象:「Model」、「Logger」、「Data_Generator」、「Trainer」与配置:

sess = tf.Session()

# create instance of the model you want

model =VGGModel(config)

# create your data generator

data =DataGenerator(config)

# create tensorboard logger

logger =Logger(sess, config)

向所有这些对象传递训练器对象,通过调用「trainer.train()」开始训练。

trainer =VGGTrainer(sess, model, data, config, logger)

# here you train your model

trainer.train()

你会看到模板文件、一个示例模型和训练文件夹,向你展示如何快速开始你的第一个模型。

详述

模型架构

提出一个快速启动自己的 TensorFlow 项目模板

文件夹结构

├── base

│ ├── base_model.py - this file contains the abstract class of the model.

│ └── ease_train.py - this file contains the abstract class of the trainer.

├── model -This folder contains any model of your project.

│ └── example_model.py

├── trainer -this folder contains trainers of your project.

│ └── example_trainer.py

├── mains - here's the main/s of your project (you may need more than one main.

├── data _loader

│ └── data_generator.py - here's the data_generator that responsible for all data handling.

└── utils

├── logger.py

└── any_other_utils_you_need

主要组件

模型

基础模型

基础模型是一个必须由你所创建的模型继承的抽象类,其背后的思路是:绝大多数模型之间都有很多东西是可以共享的。基础模型包含:

Save-此函数可保存 checkpoint 至桌面。

Load-此函数可加载桌面上的 checkpoint。

Cur-epoch、Global_step counters-这些变量会跟踪训练 epoch 和全局步。

Init_Saver-一个抽象函数,用于初始化保存和加载 checkpoint 的操作,注意:请在要实现的模型中覆盖此函数。

Build_model-是一个定义模型的抽象函数,注意:请在要实现的模型中覆盖此函数。

你的模型

以下是你在模型中执行的地方。因此,你应该:

创建你的模型类并继承 base_model 类。

覆写 "build_model",在其中写入你想要的 tensorflow 模型。

覆写"init_save",在其中你创建 tensorflow 保存器,以用它保存和加载检查点。

在 initalizer 中调用"build_model" 和 "init_saver"

训练器

基础训练器

基础训练器(Base trainer)是一个只包装训练过程的抽象的类。

你的训练器

以下是你应该在训练器中执行的。

创建你的训练器类,并继承 base_trainer 类。

覆写这两个函数,在其中你执行每一步和每一 epoch 的训练过程。

数据加载器

这些类负责所有的数据操作和处理,并提供一个可被训练器使用的易用接口。

记录器(Logger)

这个类负责 tensorboard 总结。在你的训练器中创建一个有关所有你想要的 tensorflow 变量的词典,并将其传递给 logger.summarize()。

配置

我使用 Json 作为配置方法,接着解析它,因此写入所有你想要的配置,然后用"utils/config/process_config"解析它,并把这个配置对象传递给所有其他对象。

Main

以下是你整合的所有之前的部分。

1. 解析配置文件。

2. 创建一个 TensorFlow 会话。

3. 创建 "Model"、"Data_Generator" 和 "Logger"实例,并解析所有它们的配置。

4. 创建一个"Trainer"实例,并把之前所有的对象传递给它。

5. 现在你可通过调用"Trainer.train()"训练你的模型。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 深度学习
    +关注

    关注

    73

    文章

    5491

    浏览量

    120958
  • tensorflow
    +关注

    关注

    13

    文章

    328

    浏览量

    60490

原文标题:快速开启你的第一个项目:TensorFlow项目架构模板

文章出处:【微信号:CAAI-1981,微信公众号:中国人工智能学会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用tensorflow快速搭建起深度学习项目

    我们继续以 NG 课题组提供的 sign 手势数据集为例,学习如何通过Tensorflow快速搭建起深度学习项目。数据集标签共有零到五总
    的头像 发表于 10-25 08:57 7679次阅读

    【分享】制作专属的LabVIEW 项目模板

    快速的直接从项目着手写程序,长时间的积累总结总算可以派上用处了!如何创建属于自己项目
    发表于 06-05 14:29

    使用 TensorFlow, 你必须明白 TensorFlow

    :1": 机器的第二 GPU, 以此类推.阅读使用GPU章节, 了解 TensorFlow GPU 使用的更多信息.交互式使用文档中的 Python 示例使用会话 Session
    发表于 03-30 20:03

    TensorFlow是什么

    来发现和理解濒临灭绝的海牛。位日本农民运用 TensorFlow 开发了应用程序,使用大小和形状等物理特性对黄瓜进行分类。使用 Tensor
    发表于 07-22 10:14

    TensorFlow的特点和基本的操作方式

    Tensorflow是Google开源的深度学习框架,来自于Google Brain研究项目,在Google第代分布式机器学习框架DistBelief的基础上发展起来。Tensorflow
    发表于 11-23 09:56

    《AI 概论》教师手册(第篇)——活用Excel模板

    和 Python 程序代码包装起来,让 Excel 提供视觉性和操作性。而模板就像未插完成的花盆,引导大家起创作完成独特的作品。 `
    发表于 12-02 15:09

    如何建立KEIL工程模板

    前哨篇:如何建立KEIL工程模板本节的内容主要针对的是初学者,有熟练使用KEIL建立ARM工程项目的朋友可以略过:首先大家安装KEIL
    发表于 01-07 08:05

    stm32的IAR程序项目模板

    stm32的IAR程序项目模板源代码,下来看看。
    发表于 05-20 16:29 33次下载

    TensorFlow是什么?如何启动并运行TensorFlow

    TensorFlow款用于数值计算的强大的开源软件库,特别适用于大规模机器学习的微调。 它的基本原理很简单:首先在 Python 中定义要执行的计算图(例如图 9-1),然后 TensorFlow 使用该图并使用优化的 C
    的头像 发表于 07-29 11:16 1.7w次阅读

    实用的GitHub项目TensorFlow-Cookbook

    这是易用的TensorFlow代码集,作者是来自韩国的AI研究科学家Junho Kim,内容涵盖了谱归化卷积、部分卷积、pixel shuffle、几种归
    的头像 发表于 02-19 09:04 4349次阅读

    Makefile的项目模板免费下载

    本文档的主要内容详细介绍的是Makefile的项目模板免费下载 可根据项目名称修改。
    发表于 06-12 08:00 11次下载
    Makefile的<b class='flag-5'>项目</b><b class='flag-5'>模板</b>免费下载

    TensorFlow Community Spotlight获奖项目

    我们在 6 月启动TensorFlow Community Spotlight 项目,旨在让开发者通过在社区提交的 TensorFlow 项目
    的头像 发表于 11-26 09:43 1792次阅读

    STM32编译Makefile模板

    STM32编译Makefile模板
    发表于 11-13 20:06 10次下载
    <b class='flag-5'>一</b><b class='flag-5'>个</b>STM32编译Makefile<b class='flag-5'>模板</b>

    TensorFlow和PyTorch的实际应用比较

    TensorFlow和PyTorch是两最受欢迎的开源深度学习框架,这两框架都为构建和训练深度学习模型提供了广泛的功能,并已被研发社区广泛采用。但是作为用户,我们直想知道哪种框架
    的头像 发表于 01-14 11:53 2876次阅读

    搭建基于Vue3+Vite2+Arco+Typescript+Pinia后台管理系统模板

    今天我们就来快速搭建基于Vue3+Vite2+Arco+Typescript+Pinia后台管理系统模板。这样可以帮大家快速制作
    的头像 发表于 03-01 10:09 730次阅读
    搭建基于Vue3+Vite2+Arco+Typescript+Pinia后台管理系统<b class='flag-5'>模板</b>