0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

提出一個快速啟動自己的 TensorFlow 項目模板

MqC7_CAAI_1981 ? 2018-02-07 11:47 ? 次閱讀

作為最為流行的深度學習資源庫,TensorFlow 是幫助深度學習新方法走向?qū)崿F(xiàn)的強大工具。它為大多數(shù)深度學習領域中使用的常用語言提供了大量應用程序接口。對于開發(fā)者和研究人員來說,在開啟新的項目前首先面臨的問題是:如何構建一個簡單明了的結(jié)構,本文或許可以為你帶來幫助。

TensorFlow 項目模板

簡潔而精密的結(jié)構對于深度學習項目來說是必不可少的,在經(jīng)過多次練習和 TensorFlow 項目開發(fā)之后,本文作者提出了一個結(jié)合簡便性、優(yōu)化文件結(jié)構和良好 OOP 設計的 TensorFlow 項目模板。該模板可以幫助你快速啟動自己的 TensorFlow 項目,直接從實現(xiàn)自己的核心思想開始。

這個簡單的模板可以幫助你直接從構建模型、訓練等任務開始工作。

目錄

概述

詳述

項目架構

文件夾結(jié)構

主要組件

模型

訓練器

數(shù)據(jù)加載器

記錄器

配置

Main

未來工作

概述

簡言之,本文介紹的是這一模板的使用方法,例如,如果你希望實現(xiàn) VGG 模型,那么你應該:

在模型文件夾中創(chuàng)建一個名為 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()

覆寫這兩個函數(shù) "build_model",在其中執(zhí)行你的 VGG 模型;以及定義 TensorFlow 保存的「init_saver」,隨后在 initalizer 中調(diào)用它們。

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 文件夾中創(chuàng)建 VGG 訓練器,繼承「base_train」類。

classVGGTrainer(BaseTrain):

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

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

覆寫這兩個函數(shù)「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

在主文件中創(chuàng)建會話,創(chuàng)建以下對象:「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)

向所有這些對象傳遞訓練器對象,通過調(diào)用「trainer.train()」開始訓練。

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

# here you train your model

trainer.train()

你會看到模板文件、一個示例模型和訓練文件夾,向你展示如何快速開始你的第一個模型。

詳述

模型架構

提出一個快速啟動自己的 TensorFlow 項目模板

文件夾結(jié)構

├── 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

主要組件

模型

基礎模型

基礎模型是一個必須由你所創(chuàng)建的模型繼承的抽象類,其背后的思路是:絕大多數(shù)模型之間都有很多東西是可以共享的?;A模型包含:

Save-此函數(shù)可保存 checkpoint 至桌面。

Load-此函數(shù)可加載桌面上的 checkpoint。

Cur-epoch、Global_step counters-這些變量會跟蹤訓練 epoch 和全局步。

Init_Saver-一個抽象函數(shù),用于初始化保存和加載 checkpoint 的操作,注意:請在要實現(xiàn)的模型中覆蓋此函數(shù)。

Build_model-是一個定義模型的抽象函數(shù),注意:請在要實現(xiàn)的模型中覆蓋此函數(shù)。

你的模型

以下是你在模型中執(zhí)行的地方。因此,你應該:

創(chuàng)建你的模型類并繼承 base_model 類。

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

覆寫"init_save",在其中你創(chuàng)建 tensorflow 保存器,以用它保存和加載檢查點。

在 initalizer 中調(diào)用"build_model" 和 "init_saver"

訓練器

基礎訓練器

基礎訓練器(Base trainer)是一個只包裝訓練過程的抽象的類。

你的訓練器

以下是你應該在訓練器中執(zhí)行的。

創(chuàng)建你的訓練器類,并繼承 base_trainer 類。

覆寫這兩個函數(shù),在其中你執(zhí)行每一步和每一 epoch 的訓練過程。

數(shù)據(jù)加載器

這些類負責所有的數(shù)據(jù)操作和處理,并提供一個可被訓練器使用的易用接口。

記錄器(Logger)

這個類負責 tensorboard 總結(jié)。在你的訓練器中創(chuàng)建一個有關所有你想要的 tensorflow 變量的詞典,并將其傳遞給 logger.summarize()。

配置

我使用 Json 作為配置方法,接著解析它,因此寫入所有你想要的配置,然后用"utils/config/process_config"解析它,并把這個配置對象傳遞給所有其他對象。

Main

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

1. 解析配置文件。

2. 創(chuàng)建一個 TensorFlow 會話。

3. 創(chuàng)建 "Model"、"Data_Generator" 和 "Logger"實例,并解析所有它們的配置。

4. 創(chuàng)建一個"Trainer"實例,并把之前所有的對象傳遞給它。

5. 現(xiàn)在你可通過調(diào)用"Trainer.train()"訓練你的模型。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 深度學習
    +關注

    關注

    73

    文章

    5434

    瀏覽量

    120790
  • tensorflow
    +關注

    關注

    13

    文章

    328

    瀏覽量

    60444

原文標題:快速開啟你的第一個項目:TensorFlow項目架構模板

文章出處:【微信號:CAAI-1981,微信公眾號:中國人工智能學會】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用tensorflow快速搭建起深度學習項目

    我們繼續(xù)以 NG 課題組提供的 sign 手勢數(shù)據(jù)集為例,學習如何通過Tensorflow快速搭建起深度學習項目。數(shù)據(jù)集標簽共有零到五總
    的頭像 發(fā)表于 10-25 08:57 ?7656次閱讀

    【分享】制作專屬的LabVIEW 項目模板

    快速的直接從項目著手寫程序,長時間的積累總結(jié)總算可以派上用處了!如何創(chuàng)建屬于自己項目
    發(fā)表于 06-05 14:29

    使用 TensorFlow, 你必須明白 TensorFlow

    :1": 機器的第二 GPU, 以此類推.閱讀使用GPU章節(jié), 了解 TensorFlow GPU 使用的更多信息.交互式使用文檔中的 Python 示例使用會話 Session
    發(fā)表于 03-30 20:03

    TensorFlow是什么

    來發(fā)現(xiàn)和理解瀕臨滅絕的海牛。位日本農(nóng)民運用 TensorFlow 開發(fā)了應用程序,使用大小和形狀等物理特性對黃瓜進行分類。使用 Tensor
    發(fā)表于 07-22 10:14

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

    Tensorflow是Google開源的深度學習框架,來自于Google Brain研究項目,在Google第代分布式機器學習框架DistBelief的基礎上發(fā)展起來。Tensorflow
    發(fā)表于 11-23 09:56

    《AI 概論》教師手冊(第篇)——活用Excel模板

    和 Python 程序代碼包裝起來,讓 Excel 提供視覺性和操作性。而模板就像未插完成的花盆,引導大家起創(chuàng)作完成獨特的作品。 `
    發(fā)表于 12-02 15:09

    如何建立KEIL工程模板

    前哨篇:如何建立KEIL工程模板本節(jié)的內(nèi)容主要針對的是初學者,有熟練使用KEIL建立ARM工程項目的朋友可以略過:首先大家安裝KEIL
    發(fā)表于 01-07 08:05

    stm32的IAR程序項目模板

    stm32的IAR程序項目模板源代碼,下來看看。
    發(fā)表于 05-20 16:29 ?33次下載

    TensorFlow是什么?如何啟動并運行TensorFlow?

    TensorFlow款用于數(shù)值計算的強大的開源軟件庫,特別適用于大規(guī)模機器學習的微調(diào)。 它的基本原理很簡單:首先在 Python 中定義要執(zhí)行的計算圖(例如圖 9-1),然后 TensorFlow 使用該圖并使用優(yōu)化的 C
    的頭像 發(fā)表于 07-29 11:16 ?1.7w次閱讀

    實用的GitHub項目TensorFlow-Cookbook

    這是易用的TensorFlow代碼集,作者是來自韓國的AI研究科學家Junho Kim,內(nèi)容涵蓋了譜歸化卷積、部分卷積、pixel shuffle、幾種歸
    的頭像 發(fā)表于 02-19 09:04 ?4324次閱讀

    Makefile的項目模板免費下載

    本文檔的主要內(nèi)容詳細介紹的是Makefile的項目模板免費下載 可根據(jù)項目名稱修改。
    發(fā)表于 06-12 08:00 ?11次下載
    Makefile的<b class='flag-5'>項目</b><b class='flag-5'>模板</b>免費下載

    TensorFlow Community Spotlight獲獎項目

    我們在 6 月啟動TensorFlow Community Spotlight 項目,旨在讓開發(fā)者通過在社區(qū)提交的 TensorFlow 項目
    的頭像 發(fā)表于 11-26 09:43 ?1768次閱讀

    STM32編譯Makefile模板

    STM32編譯Makefile模板
    發(fā)表于 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是兩最受歡迎的開源深度學習框架,這兩框架都為構建和訓練深度學習模型提供了廣泛的功能,并已被研發(fā)社區(qū)廣泛采用。但是作為用戶,我們直想知道哪種框架
    的頭像 發(fā)表于 01-14 11:53 ?2839次閱讀

    搭建基于Vue3+Vite2+Arco+Typescript+Pinia后臺管理系統(tǒng)模板

    今天我們就來快速搭建基于Vue3+Vite2+Arco+Typescript+Pinia后臺管理系統(tǒng)模板。這樣可以幫大家快速制作
    的頭像 發(fā)表于 03-01 10:09 ?709次閱讀
    搭建基于Vue3+Vite2+Arco+Typescript+Pinia后臺管理系統(tǒng)<b class='flag-5'>模板</b>