计算图
#with即上下文管理器
g1 = tf.Graph()
with g1.as_default():
#在g1的上下文中设置变量
v = tf.Variable(tf.zeros[1],dtype=tf.float32,name='v1')
g2 = tf.Graph()
with g2.as_default():
v = tf.Variable(tf.ones[1],dtype=tf.float32,name='v2')
#不同的回话控制不同的计算图
with tf.Session(graph=g1) as sess:
print(sess.run(tf.get_variable('v1')))
with tf.Session(graph=g2) as sess:
print(sess.run(tf.get_variable('v2')))
会话
获取值的方式有两种:
with tf.Session() as sess:
with sess.as_default:
print(result.eval())
or
with tf.Session() as sess:
print(sess.run(result))
print(result.eval(session=sess))
在有默认会话的情况下,可以直接使用result.eval()获取值
tf.InteractiveSession可以直接将session设置为默认,从而可以:
with tf.InteractiveSession as sess:
print(result.eval())
ConfigProto
config = tf.ConfigProto(allow_soft_placement=True,
log_device_placement=True)
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
allow_soft_placement:若一些运算在GPU中不能运行时,可以放到CPU中运行
log_device_placement:记录每个节点安排在那个设备(CPU,GPU)上
函数名称 | 随机数分布 |
---|---|
tf.random_normal | 正态分布 |
tf.truncated_normal | 正态分布,且数字不会太大或太小 |
tf.random_uniform | 均匀分布 |
tf.random_gamma | gamma分布 |
函数名称 | 功能 |
---|---|
tf.zeros | 产生全0数组 |
tf.ones | 产生全1数组 |
tf.fill | 产生制定数字数组 |
tf.constant | 产生给定值的数组 |