• tensor flow 线性回归


    # -*- coding: utf-8 -*-
    """
    Spyder Editor

    This is a temporary script file.
    tensor flow 之线性回归模式
    2019-oct-5
    """

    import tensorflow as tf
    import numpy as np
    import matplotlib.pyplot as plt

    SIZE=100
    np.random.seed(100)#np随机种子
    tf.set_random_seed(100)#tf随机种子
    #1、构建数据
    x=np.linspace(0,2,SIZE) #等差数列
    noise_x=np.random.normal(loc=0.0,scale=1.0,size=SIZE) #‘随机正太分布 增加噪音
    x=x+noise_x

    y=8*x+8 #用于填充Y数组
    noise_y=np.random.normal(loc=0.0,scale=1.1,size=SIZE)
    y=y+noise_y

    #2、设置为矩阵的模型
    x.shape=(-1,1)
    y.shape=(-1,1)


    #3、构建一个模型 y=w*x+b 设置tf变量 用于训炼
    w=tf.Variable(initial_value=tf.random_uniform(shape=[1],minval=-1.0,maxval=1.0,name='w'))
    b=tf.Variable(initial_value=tf.zeros(shape=[1],name='b'))

    #4、得到预测值
    y_hat=w*x+b

    #5、构建损失函数 loss
    loss=tf.reduce_mean(tf.square(y_hat-y),name='loss') #损失函数 loss=聚合平均值(差的平方)

    #6、梯度下降 优化损失函数 ,让其最小
    optiomizer=tf.train.GradientDescentOptimizer(learning_rate=0.05)#初始化变量 及学习
    train=optiomizer.minimize(loss=loss) #求最小损失函数 loss

    #执行训练
    with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    run_w,run_b,run_loss=sess.run([w,b,loss])
    print('w={},b={},loss={}'.format(run_w,run_b,run_loss))


    for i in range(100):#训练100次
    sess.run(train)
    run_w,run_b,run_loss=sess.run([w,b,loss])#取w,b,loss这三个东东的值 并打印展示
    print('w={},b={},loss={}'.format(run_w,run_b,run_loss))

    #画表展示
    #画线
    x_hat=np.linspace(x.min(),x.max())
    print("x_hat={}".format(x_hat))
    y_hat2=run_w*x_hat+run_b
    plt.plot(x_hat,y_hat2)
    #画线
    #画点
    plt.plot(x,y,'go') #go rs ro
    #画点
    plt.show()#显示

  • 相关阅读:
    Semaphore使用
    不可变对象
    Java锁--Lock实现原理(底层实现)
    Lambda Expressions and Functional Interfaces: Tips and Best Practices
    注解的作用
    linux命令大全
    linux &和&&,|和||
    SpringCloud 商品架构例子(一)
    springcloud starter(一)
    dubbo(一)
  • 原文地址:https://www.cnblogs.com/tuozizhang/p/11623840.html
Copyright © 2020-2023  润新知