• 基于tensorflow的简单线性回归模型


    #!/usr/local/bin/python3

    ##ljj [1]

    ##linear regression model

    import tensorflow as tf

    import matplotlib.pyplot as plt

    #训练样本,随手写的

    x_ = [11,14,22,29,32,40,44,55,59,60,69,77]

    y_res = [123,135,155,167,177,189,200,240,250,255,277,298]

    #初始化定义w和b,都为1,这里折腾了一会,主要因为tf.ones的参数

    w = tf.Variable(tf.ones([1]),dtype="float32")

    b = tf.Variable(tf.ones([1]),dtype="float32")

    y = tf.placeholder(tf.float32)

    x = tf.placeholder(tf.float32)

    with tf.Session() as sess:

    #定义线性模型

        y_predict = w*x+b

    #平方误差作为损失函数

        loss = tf.reduce_mean(tf.square(y-y_predict))

    #配置训练优化器和学习速率

        train = tf.train.AdamOptimizer(0.03).minimize(loss)

      

        sess.run(tf.global_variables_initializer())

       

     for j in range(1000): 

         for i in range(len(x_)):

             # train.run(feed_dict={x:x_[i], y:y_res[i]})

        #feed训练,并输出w和b

              w_,b_,_= sess.run([w,b,train],feed_dict={x:x_[i], y:y_res[i]})

         print(w_,b_)


    print('final result : ')
    print(w_,b_)

    plt.plot(x_,y_res,'.')

    plt.plot(x_,x_*w_+b_,'-')

    plt.show()

    主机环境:MacbookPro,tensoflow版本1.4,pyhton3.5

    输出结果:

    final result : 

    [ 2.65540743] [ 91.92604065]

    -------以上输出分别是拟合出的Weight,Bias值。不同版本的tensorlfow,拟合的线可能会略有差异,稍微调调参就可以拟合的不错。

  • 相关阅读:
    Linq to Sql学习总结1
    SQL相关
    C#各种小知识点总结
    Ext.Net学习笔记
    ASP.NET MVC3入门学习总结
    leetcode-剑指67-OK
    leetcode-剑指44-OK
    leetcode-剑指51-OK
    leetcode-剑指32-III-OK
    leetcode-剑指49-OK
  • 原文地址:https://www.cnblogs.com/lingjiajun/p/8964889.html
Copyright © 2020-2023  润新知