1、 constant(常量)html
constant是TensorFlow的常量节点,经过constant方法建立,其是计算图(Computational Graph)中的起始节点,是传入数据。node
建立方式缓存
cons = tf.constant(value=[1,2],dtype=tf.float32,shape=(1,2),name='testconst', verify_shape=False)
参数说明session
value:初始值,必填,必须是一个张量(1或[1,2,3]或[[1,2,3],[2,2,3]]或......)dom
dtype:数据类型,选填,默认为value的数据类型,传入参数为tensorflow下的枚举值(float32,float64.......)函数
shape:数据形状,选填,默认为value的shape,设置时不得比value小,能够比value阶数、维度更高,超过部分按value提供最后一个数字填充,示例代码以下学习
import tensorflow as tf sess = tf.InteractiveSession() cons1 = tf.constant([1, 2, 3], shape=[2, 3]) print(sess.run(cons1)) # [[1 2 3] # [3 3 3]]
name:常量名,选填,默认值不重复,根据建立顺序为(Const,Const_1,Const_2.......)spa
verify_shape:是否验证value的shape和指定shape相符,若设为True则进行验证,不相符时会抛出异常code
2、placeholder(占位符)htm
placeholder是TensorFlow的占位符节点,由placeholder方法建立,其也是一种常量,但是由用户在调用run方法是传递的,也能够将placeholder理解为一种形参。即其不像constant那样直接可使用,须要用户传递常数值。
建立方式
X = tf.placeholder(dtype=tf.float32, shape=[144, 10], name='X')
参数说明
dtype:数据类型,必填,默认为value的数据类型,传入参数为tensorflow下的枚举值(float32,float64.......)
shape:数据形状,选填,不填则随传入数据的形状自行变更,能够在屡次调用中传入不一样形状的数据
name:常量名,选填,默认值不重复,根据建立顺序为(Placeholder,Placeholder_1,Placeholder_2.......)
示例代码
import tensorflow as tf import numpy.random as random #占位符shape不设时会按传入参数自行匹配 node1 = tf.placeholder(tf.float32) # , shape=[4, 5]) node2 = tf.placeholder(tf.float32) # , shape=[4, 5]) op = tf.multiply(node1, node2) session = tf.Session() const1 = tf.constant(random.rand(4, 5)) const2 = tf.constant(random.rand(4, 5)) #能够传入初始化后的常量 print(session.run(op, {node1: session.run(const1), node2: session.run(const2)})) #也能够直接传入张量,其实同初始化后的常量一致 print(session.run(op, {node1: random.rand(2, 3), node2: random.rand(2, 3)}))
3、Variable(变量)
Vatiable是tensorflow的变量节点,经过Variable(注:V大写)方法建立,而且须要传递初始值。在使用前须要经过tensorflow的初始化方法进行初始化。
建立方式
W = tf.Variable(initial_value=tf.zeros([9, 5]), # 初始值,必填,张量或能够转换为张量的Python对象。初始值必须有指定一个形状,除非`validate_shape`设置为False。 trainable=True, # 若是`True`,则默认值也将变量添加到图形中集合`GraphKeys.TRAINABLE_VARIABLES`。这个集合用做“Optimizer”类使用的默认变量列表 collections=None, # 图表集合键的列表。新的变量被添加到这些集合。默认为`[GraphKeys.GLOBAL_VARIABLES]`。 validate_shape=True, # 若是`False`,容许变量用初始化未知形状的值。若是“True”,默认的形状`initial_value`必须是已知的。 caching_device=None, # 可选设备字符串,描述变量的位置应该被缓存以供阅读。默认为变量的设备。若是不是“None”,则缓存在另外一个设备上。典型的用途是缓存在使用变量的Ops所在的设备上进行重复数据删除复制`Switch`和其余条件语句。 name='W', # 变量的可选名称。默认为“Variable”并获取自动去重(Variable_1,Variable_2....)。 variable_def=None, # `VariableDef`协议缓冲区。若是不是“无”,则从新建立变量对象及其内容,引用变量的节点在图中,必须已经存在。图形没有改变。`variable_def`和其余参数是互斥的。 dtype=tf.float32, # 若是设置,initial_value将被转换为给定的类型。若是`None',数据类型将被保存(若是`initial_value`是一个张量),或者“convert_to_tensor”来决定。 expected_shape=None, # 张量的Shape。若是设置,initial_value须要符合这个形状。 import_scope=None) # 可选的字符串。名称范围添加到`Variable.`仅在从协议缓冲区初始化时使用。
参数说明Variable函数的所有参数如上方代码展现,不过目前我在学习中遇到经常使用的的参数只有以下几个,其余的参数暂时没在代码中遇到
initial_value,dtype,name,建立代码相似下面这样
W = tf.Variable(tf.zeros([3, 10]), dtype=tf.float64, name='W')
原创声明 做者:Vulper 地址:http://www.cnblogs.com/Vulpers/p/7809276.html 本文版权归做者和博客园共同全部,欢迎转载,转载必须注明出处。 |