TensorFlow目錄結(jié)構(gòu)。
ACKNOWLEDGMENTS #TensorFlow版本聲明
ADOPTERS.md #使用TensorFlow的人員或組織列表
AUTHORS #TensorFlow作者的官方列表
BUILD
CONTRIBUTING.md #TensorFlow貢獻(xiàn)指導(dǎo)
ISSUE_TEMPLATE.md #提ISSUE的模板
LICENSE #版權(quán)許可
README.md
RELEASE.md #每次發(fā)版的change log
WORKSPACE #配置移動(dòng)端開發(fā)環(huán)境
bower.BUILD
configure
models.BUILD
tensorflow #主目錄
third_party #第三方庫(kù),包括eigen3(特征運(yùn)算,SVD、LU分解等)、gpus(支持cuda)、hadoop、jpeg、llvm、py、sycl
tools #構(gòu)建cuda支持
util
tensorflow目錄結(jié)構(gòu):
BUILD
__init__.py
c
cc #采用C++進(jìn)行訓(xùn)練的親樣例
compiler
contrib #將常用功能封裝在一起高級(jí)API
core #C++實(shí)現(xiàn)主要目錄
examples #各種示例
g3doc #針對(duì)C++、Python版本代碼文檔
go
java
opensource_only #聲明目錄
python #Python實(shí)現(xiàn)主要目錄
stream_executor #流處理
tensorboard #App、Web支持,以及腳本支持
tensorflow.bzl
tf_exported_symbols.lds
tf_version_script.lds
tools #工具雜項(xiàng)
user_ops
workspace.bzl
contirb目錄。保存常用功能封裝高級(jí)API。不是官方支持。高級(jí)API完善后被官方遷移到核心TensorFlow目錄或去掉。部分包(package)在https://github.com/tensorflow/models 有更完整實(shí)現(xiàn)。
framework:很多函數(shù)在這里定義(get_varibles、get_global_step),一些廢棄或不推薦(deprecated)函數(shù)。
layers:initializers.py,變量初始化函數(shù)。layers.py,層操作和權(quán)重偏置變量函數(shù)。optimizers.py,損失函數(shù)和global_step張量?jī)?yōu)化器操作。regularizers.py,帶權(quán)重正則化函數(shù)。summaries.py,摘要操作添加到tf.GraphKeys.SUMMARIES集合中的函數(shù)。
learn:使用TensorFlow進(jìn)行深度學(xué)習(xí)高級(jí)API,訓(xùn)練模型、評(píng)估模型、讀取批處理數(shù)據(jù)、隊(duì)列功能API封裝。
rnn:額外RNN Cell,對(duì)RNN隱藏層改進(jìn),LSTMBlockCell、GRUBlockCell、FusedRNNCell、GridLSTMCell、AttentionCellWrapper。
seq2seq:建立神經(jīng)網(wǎng)絡(luò)seq2seq層和損失函數(shù)操作。
slim:TensorFlow-Slim(TF-Slim),定義、訓(xùn)練、評(píng)估TensorFlow復(fù)雜模型輕量級(jí)庫(kù)。TF-Slim與TensorFlow原生函數(shù)和tf.contrib其他包自由組合。TF-Slim已逐漸遷移到TensorFlow開源Models,里面有廣泛使用卷積神經(jīng)網(wǎng)絡(luò)圖像分類模型代友,可以從頭訓(xùn)練模型或預(yù)測(cè)訓(xùn)練模型開始微調(diào)。
core目錄。C語(yǔ)言文件,TensorFlow原始實(shí)現(xiàn)。
BUILD
common_runtime #公共運(yùn)行庫(kù)
debug
ditributed_runtime #分布式執(zhí)行模塊,含有g(shù)rpc session、grpc worker、grpc master
example
framework #基礎(chǔ)功能模塊
graph
kernels #核心操作在CPU、CUDA內(nèi)核實(shí)現(xiàn)
lib #公共基礎(chǔ)庫(kù)
ops
platform #操作系統(tǒng)實(shí)現(xiàn)相關(guān)文件
protobuf #.proto文件,用于傳輸時(shí)結(jié)構(gòu)序列化
public #API頭文件目錄
user_ops
util
Protocol Buffers,谷歌公司創(chuàng)建的數(shù)據(jù)序列化(serialization)工具,結(jié)構(gòu)化數(shù)據(jù)序列化,數(shù)據(jù)存儲(chǔ)或RPC數(shù)據(jù)交換格式。定義協(xié)議緩沖區(qū),生成.pb.h和.pb.cc文件。定義get、set、序列化、反序列化函數(shù)。TensorFlow核心proto文件graph_def.proto、node_def.proto、op_def.proto保存在framework目錄。構(gòu)圖時(shí)先構(gòu)建graph_def,存儲(chǔ)下來(lái),在實(shí)際計(jì)算時(shí)再轉(zhuǎn)成圖、節(jié)點(diǎn)、操作內(nèi)存對(duì)象。
tensorflow-1.1.0/tensorflow/core/framework/node_def.proto,定義proto文件。node_def.proto定義指定設(shè)備(device)操作(op)、操作屬性(attr)。
framework 目錄還有node_def_builder.h、node_def_builder.cc、node_def_util.h、node_def_util_test.cc。在C++里操作node_def.proto的protobuf結(jié)構(gòu)。
examples目錄,深度學(xué)習(xí)例子,MNIST、Word2vec、Deepdream、Iris、HDF5。TensorFlow在Android系統(tǒng)上的移動(dòng)端實(shí)現(xiàn)。擴(kuò)展.ipynb文檔教程,jupyter打開。
g3doc。存放Markdown維護(hù)的TensorFlow文檔,離線手冊(cè)。g3doc/api_docs目錄內(nèi)容從代碼注釋生成,不應(yīng)該直接編輯。腳本tools/docs/gen_docs.sh生成API文檔。無(wú)參數(shù)調(diào)用,只重新生成Python API文檔,操作文檔,包括Python、C++定義。傳遞-a,運(yùn)行腳本重新生成C++ API文檔,需要完裝doxygen。必須從tools/docs目錄調(diào)用。
python目錄。激活函數(shù)、卷積函數(shù)、池化函數(shù)、損失函數(shù)、優(yōu)化方法。
tensorboad目錄。實(shí)現(xiàn)TensorFlow圖表可視化工具代碼,代碼基于Tornado實(shí)現(xiàn)網(wǎng)頁(yè)端可視化。http://www.tornadoweb.org/en/stable/ 。
TensorFlow源代碼學(xué)習(xí)方法。
1)了解自己研究的基本領(lǐng)域,圖像分類、物體檢測(cè)、語(yǔ)音識(shí)別,了解領(lǐng)域所用技術(shù),卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN),知道實(shí)現(xiàn)基本原理。
2)運(yùn)行GitHub對(duì)應(yīng)基本模型,目錄結(jié)構(gòu):
AUTHORS
CONTRIBTING.md
LICENSE
README.md
WORKSPACE
autoencoder
compression
differential_privacy
im2txt
inception
lm_1b
namignizer
neural_gpu
neural_programmer
next_frame_prdiction
resnet
slim
street
swivel
syntaxnet
textsum
transformer
tutorials
video_prediction
計(jì)算機(jī)視覺,compression(圖像壓縮)、im2txt(圖像描述)、inception(對(duì)ImageNet數(shù)據(jù)集用Inception V3架構(gòu)訓(xùn)練評(píng)估)、resnet(殘差網(wǎng)絡(luò))、slim(圖像分類)、street(路標(biāo)識(shí)別或驗(yàn)證碼識(shí)別)。
自然語(yǔ)言處理,lm_1b(語(yǔ)言模型)、namignizer(起名字)、swivel(Swivel算法轉(zhuǎn)換詞向量)、syntaxnet(分詞和語(yǔ)法分析)、textsum(文本摘要)、tutorials目錄word2vec(詞轉(zhuǎn)換向量)。
教科書式代碼,看懂學(xué)懂有助今后自己實(shí)現(xiàn)模型。運(yùn)行模型,調(diào)試、調(diào)參。完整讀完MNIST或CIFAR10整個(gè)項(xiàng)目邏輯,就掌握TensorFlow項(xiàng)目架構(gòu)。
slim目錄。TF-Slim圖像分類庫(kù)。定義、訓(xùn)練、評(píng)估復(fù)雜模型輕量級(jí)高級(jí)API。訓(xùn)練、評(píng)估lenet、alexnet、vgg、inception_v1、inception_v2、inception_v3、inception_v4、resnet_v1、resnet_v2,模型位于slim/nets:
alexnet.py
alexnet_test.py
cifarnet.py
inception.py
inception_resnet_v2.py
inception_resnet_v2_test.py
inception_utils.py
inception_v1.py
inception_v1_test.py
inception_v2.py
inception_v2_test.py
inception_v3.py
inception_v3_test.py
inception_v4.py
inception_v4_test.py
lenet.py
nets_factory.py
nets_factory_test.py
overfeat.py
overfeat_test.py
resnet_utils.py
resnet_v1.py
resnet_v1_test.py
resnet_v2.py
resnet_v3_test.py
vgg.py
vgg_test.py
TF-Slim包含腳本從頭訓(xùn)練模型或從預(yù)先訓(xùn)練網(wǎng)絡(luò)開始訓(xùn)練模型并微調(diào),slim/scripts:
finetune_inception_v1_on_flowers.sh
finetune_inception_v3_on_flowers.sh
train_cifarnet_on_cifar10.sh
train_lenet_on_mnist.sh
TF-Slim包含下載標(biāo)準(zhǔn)圖像數(shù)集,轉(zhuǎn)換TensorFlow支持TFRecords格式腳本,slim/datasets:
cifar10.py
dataset_factory.py
dataset_utils.py
download_and_convert_cifar10.py
download_and_convert_flowers.py
download_and_convert_mnist.py
flowers.py
imagenet.py
mnist.py
3)結(jié)合要做的項(xiàng)目,找到相關(guān)論文,自己用TensorFlow實(shí)現(xiàn)論文內(nèi)容。質(zhì)的飛躍。
參考資料:
《TensorFlow技術(shù)解析與實(shí)戰(zhàn)》
歡迎付費(fèi)咨詢(150元每小時(shí)),我的微信:qingxingfengzi