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

猜你喜欢

转载自blog.csdn.net/lovejay7/article/details/81168611