import numpy as np import tensorflow as tf # 使用numpy生成100个随机点 xdata = np.random.rand(1000) ydata = xdata * 0.1225 + 0.8843 # y=0.1225*x+0.8843 # 构造一个线性模型 b = tf.Variable(0.) k = tf.Variable(0.) y = k * xdata + b # 二次代价函数 loss = tf.reduce_mean(tf.square(ydata - y)) # 误差平均值 # 定义一个梯度下降法来进行训练的优化器 optimizer = tf.train.GradientDescentOptimizer(0.2) # 优化率0.2 # 最小化代价函数 train = optimizer.minimize(loss) # 前面使用了变量,需要初始化 init = tf.global_variables_initializer() with tf.Session() as ses: ses.run(init) for s in range(1001): ses.run(train) if s % 10 == 0: print(s, '-->>>', ses.run([k, b]))
本例使用numpy和TensorFlow。
numpy用来生成1000个x轴的坐标点,然后定义一个函数
y=0.1225x+0.8843
这样就生成了xdata和ydata.
然后使用逐次逼近(y-ydata)^2=0的状态,拟合曲线。
optimizer是一个优化器,可以理解成机器的学习速率,后面的0.2就是优化率
需要指出,k和b都是随机的,之后根据算法调整,逐渐逼近。