TensorFlow 学习积累(1):variable 和 placeholder

variable和placeholder


variable :不丢失

variable 用于构建一个变量,在计算图的运算过程中,其值会一直保存到程序运行结束,而一般的tensor张量在tensorflow运行过程中只是在计算图中流过,并不会保存下来。

因此varibale主要用来保存tensorflow构建的一些结构中的参数,这些参数才不会随着运算的消失而消失,才能最终得到一个模型。

比如神经网络中的权重和bias等,在训练过后,总是希望这些参数能够保存下来,而不是直接就消失了,所以这个时候要用到Variable。

注意,所有和varible有关的操作在计算的时候都要使用session会话来控制,包括计算,打印等等。

import tensorflow as tf

a=tf.Variable(1)

b=tf.constant(1)  #定义变量a=0和常量1,并且定义a的自加运算aplus1和更新a的值得操作update"""

aplus1=tf.add(a,b)

update=tf.assign(a,aplus1)

#设置完变量之后,必须要对变量进行初始化工作,变量才能使用

init=tf.initialize_all_variables()

with tf.Session() as sess:

sess.run(init) #运行初始化变量的计算

for i in range(10): #循环10次,查看a逐渐自加1的结果

sess.run(update) #执行变量a的自加运算

print(sess.run(a)) #打印变量a也需要用session.run


placeholder :喂数据

tensorflow中又一保存数据的利器,placeholder(type,strucuct…),它的第一个参数是你要保存的数据的数据类型,大多数是tensorflow中的float32数据类型,后面的参数就是要保存数据的结构,比如要保存一个1×2的矩阵,则struct=[1 2]。

它在使用的时候和前面的variable不同的是在session运行阶段,需要给placeholder提供数据,利用feed_dict的字典结构给placeholdr变量“喂数据”。

input1 = tf.placeholder(tf.float32)

input2 = tf.placeholder(tf.float32)

# output = tf.multiply(input1,input2)#乘法

# output = tf.add(input1,input2)#加法

# output = tf.mod(input1,input2)#余数

# output = tf.sub(input1,input2)#减发

output = tf.div(input1,input2)#除法

print(sess.run(output,feed_dict={input1:[7.],input2:[2.]}))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值