使用TensorFlow的一个优势是,它可以维护操作状态和基于反向传播自动地更新模型变量。
下面我们介绍两个例子,来实现反向传播
示例一:
输入数据为:x满足均值为1,方差为0.1的正态分布
输出y为10
模型为:y=a×x
损失函数为L2正则损失函数
理论结果a应为10
首先我们导入计算模块,并创建计算图会话,然后生成数据、创建占位符和变量A
#创建计算图会话
sess = tf.Session()
#生成数据并创建在占位符和变量A
x_vals = np.random.normal(1,0.1,100)
y_vals = np.repeat(10.,100)
x_data = tf.placeholder(tf.float32,shape=[1])
y_target = tf.placeholder(tf.float32,shape=[1])
A = tf.Variable(tf.random_normal(shape=[1]))
其次我们构建模型y=ax
#增加乘法操作
my_output = tf.multiply(x_data,A)
接下来创建损失函数Loss,并初始化变量
#增加L2正则损失函数
loss = tf.square(my_output-y_target)
#在运行之前,需要初始化变量
init = tf.initialize_all_variables()
sess.run(init)
然后创建tensorflo