TF-cookbook c2 反向传播

import numpy as np
import tensorflow as tf
sess=tf.Session()
# 生成数据,创建占位符
x_vals=np.random.normal(1,0.1,100)
y_vals=np.repeat(10.,100)
x_data=tf.placeholder(shape=[1],dtype=tf.float32)
y_target=tf.placeholder(shape=[1],dtype=tf.float32)
# shape: 输出张量的形状,必选 mean: 正态分布的均值,默认为0 ;stddev: 正态分布的标准差,默认为1.0
# dtype: 输出的类型,默认为tf.float32;seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样**
# name: 操作的名称*
A=tf.Variable(tf.random_normal(shape=[1],mean=0.,dtype=tf.float32))
# 模型(乘法操作)
my_output=tf.multiply(x_data,A)
# 增加损失函数*
loss=tf.square(my_output-y_target)
# 初始化变量**
init=tf.global_variables_initializer()
sess.run(init)
# 声明变量的优化器,大部分优化器算法需要知道每步迭代的步长,学习率影响收敛速度
# 现在声明变量的优化器,使用的是标准梯度下降算法,学习率为0.02
my_opt=tf.train.GradientDescentOptimizer(learning_rate=0.02)
train_step=my_opt.minimize(loss)
# 最后一步就是训练算法*
for i in range(100):
# 随机产生0-99中的一个数
rand_index=np.random.choice(100)
rand_x=[x_vals[rand_index]]
rand_y=[y_vals[rand_index]]
sess.run(train_step,feed_dict={x_data:rand_x,y_target:rand_y})
if(i+1)%25==0:
print(‘Step #’+str(i+1) + ’ A = ’ +str(sess.run(A)))
print('Loss = ’ + str(sess.run(loss,feed_dict={x_data:rand_x,y_target:rand_y})))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值