TensorFlow目錄結構

TensorFlow源碼目錄結構

基於2018年7月23日github的tensorflow源碼,即1.9版本
這裏寫圖片描述

第一層:

tensorflow: 核心代碼目錄。
third_party:第三方庫,包括:eigen3,fft2d,hadoop,mkl,probuf ,kafka,mpi,tensorRT,nccl,grpc等等。
tools:只有兩個文件 bazel.rc 和 tf_env_collect.sh。
這裏寫圖片描述

第二層:

tensorflow/tensorflow/
c:
cc:
compiler:
contrib:存放有其他項目貢獻者添加的相關貢獻代碼,非核心官方代碼
core:這是 tensorflow 的核心代碼模塊.
docs_str:以md呈現的幫助文檔
examples:以jupyter notebook呈現的例子文檔
g3doc:爲空,都遷移到docs_str
go,java,python:主要的第三方 API,其中python是最全的接口
stream_executor:tensorflow 流圖的並行計算執行,核心代碼,主要是關於cuda的封裝。
tools:#工具雜項
user_ops:
這裏寫圖片描述

第三層

tensorflow/tensorflow/core:Core 目錄是代碼最核心的部分,包含 框架、圖、會話、runtime 最核心的部分
api_def:
common_runtime:公共運行庫,包含 會話(session)、線程(thread),內存管理(memory), 設備調度(device)等基本運行庫。
debug:
distributed_runtime:分佈式運行庫,與上面類似,作爲分佈式情況下的運行庫,提供運行支撐。
example:
framework:框架基礎模塊定義,主要是通用組件的結構格式定義;
graph:計算流圖相關基礎操作(類結構),包括 拆分、合併、執行 等操作,被外面的 executor 調用;
kernels:核心操作定義,像常用的運算 matmul,sigmoid 等操作;
lib:基礎庫用於內部調用,包括 hash、io、jpeg、math 等;
ops:對 kernel 下的op進行註冊和對外聲明;
platform: 針對不同平臺的依賴
profiler:
protobuf:Google 的傳輸交換模塊,用於傳輸時的數據序列化;
public:
user_ops:
util:

TensorFlow源代碼學習方法。
1)瞭解自己研究的基本領域,圖像分類、物體檢測、語音識別,瞭解領域所用技術,卷積神經網絡(convolutional neural network,CNN)、循環神經網絡(recurrent neural network,RNN),知道實現基本原理。
2)運行GitHub對應基本模型,目錄結構:

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
計算機視覺,compression(圖像壓縮)、im2txt(圖像描述)、inception(對ImageNet數據集用Inception V3架構訓練評估)、resnet(殘差網絡)、slim(圖像分類)、street(路標識別或驗證碼識別)。
自然語言處理,lm_1b(語言模型)、namignizer(起名字)、swivel(Swivel算法轉換詞向量)、syntaxnet(分詞和語法分析)、textsum(文本摘要)、tutorials目錄word2vec(詞轉換向量)。
教科書式代碼,看懂學懂有助今後自己實現模型。運行模型,調試、調參。完整讀完MNIST或CIFAR10整個項目邏輯,就掌握TensorFlow項目架構。
slim目錄。TF-Slim圖像分類庫。定義、訓練、評估複雜模型輕量級高級API。訓練、評估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包含腳本從頭訓練模型或從預先訓練網絡開始訓練模型並微調,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包含下載標準圖像數集,轉換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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章