SkySeraph 2017html
Email:skyseraph00#163.comgit
TensorFlow 最初由Google Brain团队开发, Google 2015年11月9日发布的开源的AI系统(Apache 2.0),前任(身)为DistBelief, 2017年2月11日发布1.0.0版,同时支持Linux、macOS和Windows以及移动平台,包括Android和iOS。
TensorFlow通常简写为TF。
Awesome AI~github
现在,AI/DL相关库很是多,Deep Learning Libraries by Language 一文中以语言为分割汇聚了几十种DL库,更多相关资料可参考这个项目的聚合awesome-ai。
其中主流的几种比较以下。api
相比于其它AI库,TF突出特色以下:session
TF中的图描述了计算过程,图经过Session的运行而执行计算。Session将图的节点们(即ops)放置到计算设备(如CPUs和GPUs)上,而后经过方法执行它们;这些方法执行完成后,将返回tensors。在Python中的tensor的形式是numpy ndarray对象,而在C/C++中则是tensorflow::Tensor.
TF使用graph来表示计算任务/处理过程. 在被称之为Session的上下文 (context) 中执行图. 使用 tensor 表示数据. 经过Variable 维护状态. 使用 feed 和 fetch 能够为任意的操做(arbitrary operation) 赋值或者从其中获取数据。数据结构
TF中使用Tensor来表示全部数据的数据结构,零阶张量为 纯量或标量 (scalar) 也就是一个数值. 好比 [1] 一阶张量为 向量 (vector), 好比 一维的 [1, 2, 3] 二阶张量为 矩阵 (matrix), 好比 二维的 [[1, 2, 3],[4, 5, 6],[7, 8, 9]]。框架
TPU( tensor processing unit): 张量处理器, Google为机器学习定制的专用芯片(ASIC),专为Google的深度学习框架TensorFlow而设计。
与图形处理器(GPU)相比,TPU采用低精度(8位)计算,以下降每步操做使用的晶体管数量。下降精度对于深度学习的准确度影响很小,但却能够大幅下降功耗、加快运算速度。同时,TPU使用了脉动阵列的设计,用来优化矩阵乘法与卷积运算,减小I/O操做。此外,TPU还采用了更大的片上内存,以此减小对DRAM的访问,从而更大程度地提高性能。机器学习
GPU device
“/cpu:0”: 你机器的CPU;
“/gpu:0”: 你机器的第一个GPU;
“/gpu:1”: 你机器的第二个GPU;ide
指定GPU。
with tf.device(‘/cpu:1’):性能
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') ......
资源分配。TF默认会使用当前全部GPU资源,控制资源能够采用动态申请或者限制GPU使用率。
动态申请:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, …)
限制GPU使用率:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, …)
By SkySeraph-2017
SkySeraph cnBlogs