Tensorflow 学习笔记(1)

Tensorflow 学习笔记(1)
tensorflow:tensor 和 flow。
tensor:张量,多维数组。(表明数据结构)
flow:数据流,表达张量之间通过计算相互转化的过程。
TensorFlow 是一个通过计算图的形式来表述计算的编程系统 。TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。
计算图:
tf.get_default_graph():获取当前默认的计算图。
tf.Graph():生成新的计算图。不同计算图上的张量和运算不共享。
tf.Variable():variable 且以大写字母开头,该函数在于定义一个变量;
tf.get_variable():可根据 name 值,返回该变量,如果该 name 不存在的话,则会进行创建。

tf.global_variables_initializer().run():变量初始化,在sess之前,对之前定义的变量需要初始化。
命名:
tf.variable_scope(reuse=True)可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable的变量
tf.name_scope可以让变量有相同的命名,只是限于tf.Variable的变量.reuse为是否共享。########在sess.run(tf.get_variable(“name”))上,需要加入tf.variable_scope()#######
如果tf.variable_scope函数使用参数reuse=None或者reuse=False创建上下文管理器,则tf.get_variable函数可以创建新的变量。但不可以创建已经存在的变量即为同名的变量。

TensorFlow 支持 14 种不同的类型, 主要包括了实数( tf.丑oat32 、 tf.float64 )、整数( tf.int8 、 tf.intl 6 、 tf.int32 、 tf.int64 、 tf.uint8 )、布尔型 C tf.bool) 和复数( tf.complex64 、tf.complex128 ) 。
会话
通过 ConfigProto Protocol BufferCD来配置需要生成的会话。config = tf.ConfigProto(al low soft placement=True,
log_device_placem ent=True)
sess1= tf.InteractiveSession(config=conf ig)
sess2 = tf.Session(config =config)
通过 ConfigProto 可以配置类似并行的线程数、 GPU 分配策略、运算超时时间等参数。
在这些参数中,最常使用的有两个。第 一个是 allow_so位_placement ,这是一个布尔型的参数,当它为 True 时, 在以下任意一个条件成立时, GPU 上的运算可 以放到 CPU 上进行 :

1.  运算无法在 GPU 上执行 。
2. 没有 GPU 资源(比如运算被指定在第 二个 GPU 上运行 ,但是机器只有一个 GPU ) 。
3. 运算输入包含对 CPU 计算结果的引用 。

这个参数的默认值为 False ,但是为了使得代码的可移植性更强,在有 GPU 的环境下
这个参数一般会被设置为 True 。不同的 GPU 驱动版本可能对计算的支持有略微的区别,通
过将 allow_ soft placement 参数设为 True , 当某些运算无法被当前 GPU 支持时,可 以自动
调整到 CPU 上,而不是报错。类似地,通过将这个参数设置为 True ,可以让程序在拥有不
同数量的 GPU 机器上顺利运行。
第 二个使用得比较多的配置参数是 log
device _placement o 这也是一个布尔型的参数,
当它为 True 时日志中将会记录每个节点被安排在 哪个设备上以方便调试 。而在生产环境中
将这个参数设置为 False 可以减少日志量。
tf.InteractiveSession 。使用这个函数会自动将生成 的 会话注册为
默认会话。sess=tf.InteractivateSession()

猜你喜欢

转载自blog.csdn.net/WSNjiang/article/details/82986256