深度学习之路6

线性回归

实现线性回归用到的API

步骤分析

 代码:

#用梯度下降实现线性回归
def Linear_regression():
    '''
    自实现一个线性回归
    :return:
    '''
    #增加命名空间
    with tf.variable_scope("prepare_data"):
    # 1 准备数据
        x = tf.random_normal(shape=[100,1],name="feature")
        y_true = tf.matmul(x,[[0.8]])+0.7
    with tf.variable_scope("creater_model"):
    # 2 构造模型
    #定义模型参数
        weights = tf.Variable(initial_value=tf.random_normal(shape=[1,1]),trainable=True,name="Weights")
        bias = tf.Variable(initial_value=tf.random_normal(shape=[1,1]),trainable=True,name="Bias")
        y_predict = tf.matmul(x,weights) + bias
    with tf.variable_scope("loss_function"):
    #构造损失函数
        error = tf.reduce_mean(tf.square(y_predict - y_true))
    with tf.variable_scope("optimizer"):
    # 4 优化损失
        optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
    #显示的初始化变量
    init = tf.global_variables_initializer()
    #开启会话
    with tf.Session() as sess:
        #初始化变量
        sess.run(init)

        #1创建事件文件
        file_writer = tf.summary.FileWriter("linear",graph=sess.graph)
        #2收集变量
        #标量
        tf.summary.scalar("error",error)
        #高维变量
        tf.summary.histogram("weights",weights)
        tf.summary.histogram("bias",bias)
        #3合并变量
        merged = tf.summary.merge_all()

        #模型的保存,创建Save对象
        saver = tf.train.Saver()
        #查看初始化模型参数之后的值
        print("训练前权重%f,偏置%f,损失%f" %(weights.eval(),bias.eval(),error.eval()))
        #开始训练
        for i in range(1000):
            sess.run(optimizer)
            print("训练后权重%f,偏置%f,损失%f" % (weights.eval(), bias.eval(), error.eval()))
        #     #运行合并变量的操作
        #     summary = sess.run(merged)
        #     #将每次迭代后的变量写入事件文件
        #     file_writer.add_summary(summary,i)
        #     #保存模型
        #     if i%10==0:
        #        saver.save(sess,"model/my_linear.ckpt")
        #加载模型
        # if os.path.exists("model/checkpoint"):
        #     saver.restore(sess,"model/my_linear.ckpt")
         #print("训练后权重%f,偏置%f,损失%f" % (weights.eval(), bias.eval(), error.eval()))

    return None

输出:

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值