tensorflow(1)-初始化
2017-11-07 23:17
183 查看
调用一般可查看:API Documentation
使用placeholder
变量并初始化
变量管理
TensorFlow支持14种不同的类型,主要包括了实数(tf.float32, tf.float64),整数(tf.int8, tf.intl6, tf.int32, tf.int64, tf.int8)、布尔型(tf.bool)和复数(tf.complex64,tf.complex 128)。
计算图
# g1 = tf.Graph() # with g1.as_default(): # with tf.Session(graph = g1) as sess: import tensorflow as tf g1 = tf.Graph() with g1.as_default(): v = tf.get_variable("v", [1], initializer = tf.zeros_initializer()) # 设置初始值为0 g2 = tf.Graph() with g2.as_default(): v = tf.get_variable("v", [1], initializer = tf.ones_initializer()) # 设置初始值为1 with tf.Session(graph = g1) as sess: tf.global_variables_initializer().run() with tf.variable_scope("", reuse=True): print(sess.run(tf.get_variable("v"))) with tf.Session(graph = g2) as sess: tf.global_variables_initializer().run() with tf.variable_scope("", reuse=True): print(sess.run(tf.get_variable("v"))) # 通过a .graph可以查看张量所属的计算图。因为没有特意指定,所以这个计算图应该等于当前默认的计算图。 print(a .graph is tf.get_ default_graph()) # True
张量
# a = tf.constant([1.0, 2.0], name="a") import tensorflow as tf a = tf.constant([1.0, 2.0], name="a") b = tf.constant([2.0, 3.0], name="b") result = a + b print(result) sess = tf.InteractiveSession () print(result.eval()) sess.close() # -------------------------------- Tensor("add:0", shape=(2,), dtype=float32) [ 3. 5.]
会话
# 使用with statement 来创建会话========= with tf.Session() as sess: print(sess.run(result)) # [ 3. 5.] # 指定默认会话========================= sess = tf.Session() with sess.as_default(): print(result.eval()) # 使用tf.InteractiveSession构建会话==== sess = tf.InteractiveSession () print(result.eval()) sess.close() # [ 3. 5.] # 通过ConfigProto配置会话============== config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True) sess1 = tf.InteractiveSession(config=config) sess2 = tf.Session(config=config)
变量
定义变量w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) # 需要初始化sess.run(w1.initializer)【init_op = tf.global_variables_initializer()+sess.run(init_op)】
使用placeholder
x = tf.placeholder(tf.float32, shape=(1, 2), name="input")
变量并初始化
v = tf.get_variable("v", [1], initializer = tf.zeros_initializer()) # 设置初始值为0 v = tf.get_variable("v", [1], initializer = tf.ones_initializer()) # 设置初始值为1 # 获取变量并运行 sess.run(tf.get_variable("v")) # 更新变量值 tf.assign(v1, 5)
变量管理
# 在上下文管理器“foo”中创建变量“v” with tf.variable_scope("foo"): v = tf.get_variable("v", [1], initializer=tf.constant_initializer(1.0)) with tf.variable_scope("foo", reuse=True): # 参数reuse设置为True。这样tf.get variable函数将直接获取已经声明的变量。 v1 = tf.get_variable("v", [1]) # ------------------------------------------------- with tf.variable_scope("foo"): with tf.variable_scope("bar"): v3 = tf.get_variable("v", [1]) print v3.name ''' foo/bar/v:0 '''
变量初始值
w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) # kernel = tf.get_variable(scope+"w",shape=[kh, kw, n_in, n_out],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer_conv2d()) biases = tf.Variable(tf.zeros([3])) # biases1 = tf.Variable(tf.constant(0.1, shape=[LAYER1_NODE])) v = tf.get_variable("v",shape=[1],initializer=tf.constant_initializer(1.0)) v = tf.Variable(tf.constant(1.0,shape=[1]),name="v") with tf.variable_scope('conv1'): w = tf.get_variable(name='weights',shape=[3,3,3,16],initializer=tf.contrib.layers.xavier_initializer(), trainable=False) b = tf.get_variable(name='biases',shape=[16],initializer=tf.constant_initializer(0.0), trainable=False) print('w name:', w.name) # w name: conv1/weights:0 print('b name:', b.name) # b name: conv1/biases:0 with tf.name_scope('conv1'): w = tf.get_variable(name='weights',shape=[3,3,3,16],initializer=tf.contrib.layers.xavier_initializer()) b = tf.get_variable(name='biases',shape=[16],initializer=tf.constant_initializer(0.0)) print('w name:', w.name) # w name: weights:0 print('b name:', b.name) # b name: biases:0
初始化
init_op = tf.global_variables_initializer() # 所有变量初始化 sess.run(w1.initializer) # 初始化某个张量,并运行
指定设备
g = tf.Graph() # tf.Graph.device函数指定运行计算的设备 with g.device('/gpu:0'): result = a + b
集合
在一个计算图中,可以通过集合(collection)来管理不同类别的资源。比如通过tf.add_to_collection函数可以将资源加入一个或多个集合中,然后通过tf.get_collection获取一个集合里面的所有资源。这里的资源可以是张量、变量或者运行TensorFlow程度所需要的队列资源,等等。类型
那么两个加数的类型相同就不会报错了。如果不指定类型,TensorFlow会给出默认的类型,不带小数点的数会被默认为int32,带小数点的会默认为float32。TensorFlow支持14种不同的类型,主要包括了实数(tf.float32, tf.float64),整数(tf.int8, tf.intl6, tf.int32, tf.int64, tf.int8)、布尔型(tf.bool)和复数(tf.complex64,tf.complex 128)。
相关文章推荐
- tensorflow 权重初始化
- tensorflow由于未初始化变量所导致的错误
- TensorFlow变量初始化
- tensorflow的一些用法(矩阵初始化,变量定义,运算)
- tensorflow的会话(Session)、变量的初始化、张量的计算
- Tensorflow参数初始化很慢的问题
- TensorFlow 学习(九)—— 初始化函数(概率分布函数 api、常数生成函数)
- TensorFlow 教程 --进阶指南--3.2变量:创建、初始化、保存和加载
- tensorflow 学习笔记(九)- 参数初始化(initializer)
- TensorFlow中权重的随机初始化的方法
- tensorflow可以用来初始化变量的函数及其参数
- TensorFlow初始化变量、常量函数用例(源码)
- tensorflow中的矩阵生成(数据初始化)与变换函数
- Tensorflow中GRU和LSTM的权重初始化
- Tensorflow中关于参数初始化的方法
- tensorflow基础(1)变量的创建、初始化、保存与加载
- TensorFlow Doc编程指南——1 变量的创建、初始化、存储、加载
- tensorflow学习:参数初始化(initializer)
- tensorflow参数初始化--identity initializtion
- Tensorflow语法学习笔记(一):变量:创建、初始化、保存和加载