深度学习入门--线性回归(TensorFlow)

#矩阵乘法
#引入库
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达人课

猜你喜欢

转载自blog.csdn.net/qq_14822691/article/details/83052338