tensorflow简单的查看程序运行时变量的值

 

下面程序演示tensorflow如何在程序的信息中打印变量的值,可用于调试:

为了简单,我们用y=wx作为演示实例,其中w表示变量参数(初始值设为1),x表示输入

损失函数我们选择(真实值-预测值)loss=y-logit,这里损失函数没有什么意义,只是作为演示实例

我们想求每次w的变化就需要用梯度下降法

loss=y-logit,logit=wx  (logit为预测值)

(1)首先要求出∆w的值需要求loss对w的偏导,

即链式求导法则(loss对logit求导,logit对w求导)。

得到∆w=-x

(2)然后利用w=w-L*∆w进行梯度下降自动求导 (L表示学习率,我们设置为1)

w=w-L*∆w=w-1*(-x)=w+2     因此利用自动梯度下降法就相等于w值自增加2.

w增加2,x不变就相当于预测值增加∆wx

下面是程序在培训过程中不停的输出w的值

import tensorflow as tf

x=tf.placeholder(tf.float32,[])
y=tf.placeholder(tf.float32,[])
w=tf.Variable(tf.constant(1.0))

logit=tf.multiply(x,w)
loss=y-logit
train_step=tf.train.GradientDescentOptimizer(1).minimize(loss) #进行自动梯度下降

with tf.Session() as sess:
    init=tf.global_variables_initializer()
    sess.run(init)
    for i in range(100):
        print("***")
        print("训练前的w的值"+str(sess.run(w)))
        print(sess.run(logit, feed_dict={x: 2.0, y: 4}))  #打印预测值,这里的预测值没啥意义
        sess.run(train_step,feed_dict={x:2.0,y:4}) #进行参数训练
        print("训练后的w的值"+str(sess.run(w)))



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值