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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

提出一個(gè)快速啟動(dòng)自己的 TensorFlow 項(xiàng)目模板

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

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

TensorFlow 項(xiàng)目模板

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

這個(gè)簡(jiǎn)單的模板可以幫助你直接從構(gòu)建模型、訓(xùn)練等任務(wù)開(kāi)始工作。

目錄

概述

詳述

項(xiàng)目架構(gòu)

文件夾結(jié)構(gòu)

主要組件

模型

訓(xùn)練器

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

記錄器

配置

Main

未來(lái)工作

概述

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

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

覆寫(xiě)這兩個(gè)函數(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 訓(xùn)練器,繼承「base_train」類。

classVGGTrainer(BaseTrain):

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

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

覆寫(xiě)這兩個(gè)函數(shù)「train_step」、「train_epoch」,在其中寫(xiě)入訓(xùn)練過(guò)程的邏輯。

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)建會(huì)話,創(chuàng)建以下對(duì)象:「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)

向所有這些對(duì)象傳遞訓(xùn)練器對(duì)象,通過(guò)調(diào)用「trainer.train()」開(kāi)始訓(xùn)練。

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

# here you train your model

trainer.train()

你會(huì)看到模板文件、一個(gè)示例模型和訓(xùn)練文件夾,向你展示如何快速開(kāi)始你的第一個(gè)模型。

詳述

模型架構(gòu)

提出一個(gè)快速啟動(dòng)自己的 TensorFlow 項(xiàng)目模板

文件夾結(jié)構(gòu)

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

主要組件

模型

基礎(chǔ)模型

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

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

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

Cur-epoch、Global_step counters-這些變量會(huì)跟蹤訓(xùn)練 epoch 和全局步。

Init_Saver-一個(gè)抽象函數(shù),用于初始化保存和加載 checkpoint 的操作,注意:請(qǐng)?jiān)谝獙?shí)現(xiàn)的模型中覆蓋此函數(shù)。

Build_model-是一個(gè)定義模型的抽象函數(shù),注意:請(qǐng)?jiān)谝獙?shí)現(xiàn)的模型中覆蓋此函數(shù)。

你的模型

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

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

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

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

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

訓(xùn)練器

基礎(chǔ)訓(xùn)練器

基礎(chǔ)訓(xùn)練器(Base trainer)是一個(gè)只包裝訓(xùn)練過(guò)程的抽象的類。

你的訓(xùn)練器

以下是你應(yīng)該在訓(xùn)練器中執(zhí)行的。

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

覆寫(xiě)這兩個(gè)函數(shù),在其中你執(zhí)行每一步和每一 epoch 的訓(xùn)練過(guò)程。

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

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

記錄器(Logger)

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

配置

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

Main

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

1. 解析配置文件。

2. 創(chuàng)建一個(gè) TensorFlow 會(huì)話。

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

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

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

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

    關(guān)注

    73

    文章

    5463

    瀏覽量

    120890
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    328

    瀏覽量

    60473

原文標(biāo)題:快速開(kāi)啟你的第一個(gè)項(xiàng)目:TensorFlow項(xiàng)目架構(gòu)模板

文章出處:【微信號(hào):CAAI-1981,微信公眾號(hào):中國(guó)人工智能學(xué)會(huì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用tensorflow快速搭建起個(gè)深度學(xué)習(xí)項(xiàng)目

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

    【分享】制作專屬的LabVIEW 項(xiàng)目模板

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

    使用 TensorFlow, 你必須明白 TensorFlow

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

    TensorFlow是什么

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

    TensorFlow的特點(diǎn)和基本的操作方式

    Tensorflow是Google開(kāi)源的深度學(xué)習(xí)框架,來(lái)自于Google Brain研究項(xiàng)目,在Google第代分布式機(jī)器學(xué)習(xí)框架DistBelief的基礎(chǔ)上發(fā)展起來(lái)。Tensorflow
    發(fā)表于 11-23 09:56

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

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

    如何建立個(gè)KEIL工程模板

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

    stm32的IAR程序項(xiàng)目模板

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

    TensorFlow是什么?如何啟動(dòng)并運(yùn)行TensorFlow?

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

    個(gè)實(shí)用的GitHub項(xiàng)目TensorFlow-Cookbook

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

    Makefile的項(xiàng)目模板免費(fèi)下載

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

    TensorFlow Community Spotlight獲獎(jiǎng)項(xiàng)目

    我們?cè)?6 月啟動(dòng)TensorFlow Community Spotlight 項(xiàng)目,旨在讓開(kāi)發(fā)者通過(guò)在社區(qū)提交的 TensorFlow 項(xiàng)目
    的頭像 發(fā)表于 11-26 09:43 ?1788次閱讀

    個(gè)STM32編譯Makefile模板

    個(gè)STM32編譯Makefile模板
    發(fā)表于 11-13 20:06 ?10次下載
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>STM32編譯Makefile<b class='flag-5'>模板</b>

    TensorFlow和PyTorch的實(shí)際應(yīng)用比較

    TensorFlow和PyTorch是兩個(gè)最受歡迎的開(kāi)源深度學(xué)習(xí)框架,這兩個(gè)框架都為構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型提供了廣泛的功能,并已被研發(fā)社區(qū)廣泛采用。但是作為用戶,我們直想知道哪種框架
    的頭像 發(fā)表于 01-14 11:53 ?2869次閱讀

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

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