tf.Variable(initializer,name)
功能:tf.Variable()建立变量时,name属性值容许重复,检查到相同名字的变量时,由自动别名机制建立不一样的变量。python
参数:api
举例:dom
import tensorflow as tf v1=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1') v2=tf.Variable(tf.constant(2),name='v2') v3=tf.Variable(tf.ones([2,3]),name='v3') with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print(sess.run(v1)) print(sess.run(v2)) print(sess.run(v3))
结果以下:函数
tf.get_variable( name, shape=None, dtype=None, initializer=None, regularizer=None, trainable=None, collections=None, caching_device=None, partitioner=None, validate_shape=True, use_resource=None, custom_getter=None, constraint=None, synchronization=tf.VariableSynchronization.AUTO, aggregation=tf.VariableAggregation.NONE )
功能:tf.get_variable建立变量时,会进行变量检查,当设置为共享变量时(经过scope.reuse_variables()或tf.get_variable_scope().reuse_variables()),检查到第二个拥有相同名字的变量,就返回已建立的相同的变量;若是没有设置共享变量,则会报[ValueError: Variable varx alreadly exists, disallowed.]的错误。google
参数:spa
初始化方式:code
举例:orm
v1=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1') v2=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=1),name='v1') v3=tf.Variable(tf.ones([2,3]),name='v3') a1 = tf.get_variable(name='a1', shape=[2, 3], initializer=tf.random_normal_initializer(mean=0, stddev=1)) a2 = tf.get_variable(name='a2', shape=[2, 3], initializer=tf.random_normal_initializer(mean=0, stddev=1)) a3 = tf.get_variable(name='a3', shape=[2, 3], initializer=tf.ones_initializer()) with tf.Session() as sess: sess.run(tf.initialize_all_variables()) print(sess.run(v1)) print(sess.run(v2)) print(sess.run(v3)) print(sess.run(a1)) print(sess.run(a2)) print(sess.run(a3))
v1和v2的参数彻底相同,建立时候不会报错;a1和a2的参数彻底相同,建立时候会报错 blog
tf.placeholder( dtype, shape=None, name=None )
功能:在tensorflow中相似于函数参数,运行时必须传入值。ip
TensorFlow连接:https://tensorflow.google.cn/api_docs/python/tf/placeholder?hl=en
参数:
举例:
input1 = tf.placeholder(tf.float32) input2 = tf.placeholder(tf.float32) output = tf.multiply(input1, input2) with tf.Session() as sess: print(sess.run(output, feed_dict={input1: [23.], input2: [4.]})) # [92.]
参考文献:
【1】Tensorflow——tf.Variable()、tf.get_variable()和tf.placeholder()