赞
踩
张量和稀疏张量:类似于矩阵和稀疏矩阵
tensforflow数据流图的计算过程就是拓扑排序的原理(数据流图中存在入度和出度概念)
并行计算快(拓扑排序思想和数据依赖)
分布式计算快(CPU GPU TPU)
预编译优化(XLA)
可移植好
常量张量是不可以改变的,占位符定义了高维数据的壳,变量张量可以一直保存数据的状态之类信息
tf.rank()可以输出张量的阶数
一次训练:前向传播和反向传播
tensorflow变量使用流程实践
tf.train.Saver([v1, v2])没有指定v1在文件中保存时的名字,所以在文件中保存时v1的名字保存为v1的tf.Variable定义的name('v1')。
tf.train.Saver({'v1':v1, 'v2':v2})指定了v1在文件中保存时的名字,即'v1'
save之后生成了3个文件,data保存的时数据实际的值;index保存的是索引,在庞大的网络中通过索引可以快速的查找数据;meta保存的是数据流图的结构
根据前面的计算,b已经是值全部为1的张量,所以assign_add(b,[1,1,1,1])将b更新为了值全部为2的张量,我们可以从保存的文件中恢复b原来的值(因为在保存文件时,b的值是1,所以上图中可以看到b恢复为了值全部为1的张量)。
在复杂的网络中,可能只恢复变量是不够的,也许需要使用tf.train.import_meta_graph来恢复数据流图。
实际上在底层,估算张量(Tensor.eval)和执行操作(Operation.run)调用的还是session.run()方法
在tensorflow中,可以指定节点执行的设备,如上图input和reshape节点指定在cpu上执行,神经网络部分指定在gpu上执行,当cpu上的节点存在入度为0的节点且Gpu上也存在入度为0的节点则此时可以实现一定的并行计算。
在client由tensorflow api编写代码,然后为了执行将这些代码传输到server(本地设备),然后基于设置的节点的执行设备,将节点在其相应的设备(cpu/gpu)上执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。