#矩阵乘法
#引入库
import tensorflow as tf
import numpy as np
# 定义数据维度
N=10
#定义 placeholder
x = tf.placeholder(dtype=tf.float32, shape=[5, N])
d = tf.placeholder(dtype=tf.float32, shape=[5, N])
#定义 W
w0 = tf.Variable(tf.zeros([1]))
w1 = tf.Variable(tf.zeros([N, 1]))
#定义模型
y = tf.matmul(x, w1) + w0
#定义损失函数
loss = tf.reduce_mean((y - d)**2)
#定义优化算法
opt = tf.train.GradientDescentOptimizer(0.1)
#计算 w 的增量 dw
grad = opt.compute_gradients(loss)
#执行 w=w+dw
train_step = opt.apply_gradients(grad)
#variable 需要初始化
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for itr in range(100):
in_x = np.random.random([5,N])
#假设 x、d 满足如下关系
in_d = 1+0.4*in_x+0.3*in_x**2
sess.run(train_step,
feed_dict={x:in_x,d:in_d})
if itr%10==0:
print("times: ",itr, sess.run([w0.value(),w1.value()]))
输出结果:
重点函数:
#定义损失函数
loss = tf.reduce_mean((y - d)**2)
#计算 w 的增量 dw
grad = opt.compute_gradients(loss)
#执行 w=w+dw
train_step = opt.apply_gradients(grad)
源自:如是的Git达人课