转 TensorFlow学习笔记——节点(constant、placeholder、Variable)

TensorFlow学习笔记——节点(constant、placeholder、Variable)
一、 constant(常量)

constant是TensorFlow的常量节点,通过constant方法创建,其是计算图(Computational Graph)中的起始节点,是传入数据。

创建方式

cons = tf.constant(value=[1,2],dtype=tf.float32,shape=(1,2),name=‘testconst’, verify_shape=False)
参数说明

value:初始值,必填,必须是一个张量(1或[1,2,3]或[[1,2,3],[2,2,3]]或…)

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…)

verify_shape:是否验证value的shape和指定shape相符,若设为True则进行验证,不相符时会抛出异常

二、placeholder(占位符)

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)}))
复制代码
三、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')

原址:https://www.cnblogs.com/Vulpers/p/7809276.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值