zoukankan      html  css  js  c++  java
  • tensorflow入门01——搭建简单的线性回归模型

    这两天跟着老师发的视频开始入门深度学习,虽然之前有过一段时间的接触,但并没有什么有效的进展,现在算是正式开始整了,希望可以通过这一个多月的寒假有所收获吧。

    ·Tensorflow是一种计算图模型,即用图的形式来表示运算过程的一种模型。Tensorflow程序一般分为图的构建和图的执行两个阶段。图的构建阶段也称为图的定义阶段,该过程会在图模型中定义所需的运算,每次运算的的结果以及原始的输入数据都可称为一个节点。

    ·线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w'x+e,e为误差服从均值为0的正态分布。 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

    下面用tensorflow搭建了一个简单的线性回归模型。

    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
    import numpy as np
    import matplotlib.pyplot as plt
    import os
    os.environ["CUDA_VISIBLE_DEVICES"]="0"
    #训练参数
    learn_rate=0.1
    training_epochs=200
    display_step=50
    
    train_x=[]
    train_y=[]
    
    #生成训练数据
    for i in range(training_epochs):
        x=np.random.normal(0.0,0.55)
        y=0.3*x+2+np.random.normal(0.0,0.05)
        train_x.append(x)
        train_y.append(y)
    
    train_x=np.asarray(train_x)
    train_y=np.asarray(train_y)
    n_samples=train_x.shape[0]
    
    #初始权重
    w=tf.Variable(np.random.randn(),name="weight")
    b=tf.Variable(np.random.randn(),name="bias")
    
    #构造线性回归模型
    pred=w*train_x+b
    
    #lost
    lost=tf.reduce_sum(tf.pow(pred-train_y,2))/(2*n_samples)
    
    #tf自带的梯度下降算法
    optimizer=tf.train.GradientDescentOptimizer(learn_rate).minimize(lost)
    
    #初始化
    init=tf.global_variables_initializer()
    
    #创建tfsession
    with tf.Session() as sess:
        sess.run(init)
    
        #开始训练
        for epoch in range(training_epochs):
                sess.run(optimizer)
                print("cost=", sess.run(lost), "W=", sess.run(w), "b=", sess.run(b))
    
        train_lost=sess.run(lost)
        print("cost=",train_lost,"W=",sess.run(w),"b=",sess.run(b))
    
        plt.plot(train_x,train_y,'ro')
        plt.plot(train_x,sess.run(w)*train_x+sess.run(b))
        plt.legend()
        plt.show()
  • 相关阅读:
    我的紫川词云
    四川省综合实力前10大学类型
    爬虫尝试
    Python安装第三方库的常见方法(补充)
    成都词云
    数据分析之扬州自5月9日起未来一周温度预测
    网络爬虫之古筝名曲爬取
    “早饭要吃好”之丰盛的扬州早茶词云展示
    河北唯一一所211大学各专业分数线数据分析
    Python爬虫爬取网页图片
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/14247235.html
Copyright © 2011-2022 走看看