tensorflow 1.4
tf.train.GradientDescentOptimizer(learning_rate, use_locking=False, name='GradientDescent')创建一个梯度下降优化器对象learning_rate 学习率
minimize(loss,global_step=None,var_list=None,gate_gradients=GATE_OP,aggregation_method=None,colocate_gradients_with_ops=False,name=None,grad_loss=None)通过更新var_list来减小lossvar_list:要更新的变量对象的列表或元组,用来减少损失。默认是在graphkeys.trainable_variables变量列表中在讲解变量时,定义变量有个参数,表明是否在训练变量列表,如果trainable设置为True,也会添加到GraphKeys.TRAINABLE_VARIABLES中
代码参考如下图
第一步:因为相关的库,初始化变量,定义训练数据x和对应的标签y
第二步:定义训练数据和对应的标签的占位符,然后定义y=wx+bw和b都是可训练的变量,初始值为随机数pred = tf.add(tf.multiply(X, W), b)实现了函数y=wx+b
第三步:使用均方差计算损失,并使用梯度下降算法减少损失计算均方差时,除以的分母是2*n_samples,我觉得应该是n_samples,不知道为啥是2*n_samples
第四步:训练模型,对于每组数据,进行训练,共训练training_epochs次。每display_step次打印一次损失及w和b的值
第五步:画出特征数据与训练值的点及特征数据与预测数据对应的线
显示结果