• tensorflow 使用 4 非线性回归


    # 输入一个 x 会计算出 y 值    y 是预测值,如果与 真的 y 值(y_data)接近就成功了 
    
    import tensorflow as tf
    import numpy as np
    # py 的画图工具
    import matplotlib.pyplot as plt
    
    # 用 numpy 生成个 200 个属性点  从 -0.5 到 0.5 间平均生成 200 个点
    #x_data = np.linspace(-0.5, 0.5, 200)      # 这只是生成了一维的数组
    # 用下边这句可以生成二维数组
    x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis]
    
    # 生成随机值,和 x_data 的形状是一样的 ( 噪点 )
    noise = np.random.normal(0, 0.02, x_data.shape)
    
    # x_data 的平方+随机数
    y_data = np.square( x_data ) + noise
    
    
    # 定义二个占位符
    x = tf.placeholder( tf.float32, [None, 1] )  # [None, 1] 行不定,列只有一列
    y = tf.placeholder( tf.float32, [None, 1] )
    
        
    # 构建神经网络中间层                    一行十列
    Weights_L1 = tf.Variable( tf.random_normal([1, 10]))
    biases_L1 = tf.Variable( tf.zeros([1, 10]) )
    
    # 求出信号的总和          矩阵相乘,
    Wx_plus_b_L1 = tf.matmul(x, Weights_L1) + biases_L1
    # 中间层的输出
    L1 = tf.nn.tanh( Wx_plus_b_L1 )
    
    # 输出层                                    十行一列
    Weights_L2 = tf.Variable( tf.random.normal([10, 1]))
    biases_L2 = tf.Variable( tf.zeros([1, 1]) )
    # 求出信号的总和          矩阵相乘,
    Wx_plus_b_L2 = tf.matmul(L1, Weights_L2) + biases_L2
    # 得出最后的预测结果
    pred = tf.nn.tanh( Wx_plus_b_L2 )
    
    
    # 二次代价函数
    loss = tf.reduce_mean( tf.square(y - pred) )
    
    
    # 梯度下降法的优化器                           最小化代价函数
    train = tf.train.GradientDescentOptimizer( 0.2 ).minimize( loss )
    
    
    with tf.Session() as sess:
      # 初始化变量
      sess.run( tf.global_variables_initializer() )
      # 训练 2000 次
      for _ in range( 2000 ):
        sess.run( train, feed_dict={x:x_data, y:y_data} )
    
    
      # 得到预测值
      value = sess.run( pred, feed_dict={x:x_data} )
      # 用画图形式展现
      
      plt.figure()
      plt.scatter(x_data, y_data)
      plt.plot(x_data, value, 'r-', lw=5)
      plt.show()
      
    

      

  • 相关阅读:
    返回一个首尾相连的整数数组中最大子数组的和
    《程序员修炼之道——从小工到专家》读后感一
    成功之路,贵在坚持
    有些路走下去会很苦很累,但是不走会后悔
    商品进行倒计时
    Hibernate中HQL函数汇总及获取当前时间进行比较举例
    java类的继承,多态,抽象类与接口
    equals()与 == 比较,hashCode方法
    面向对象基本知识
    命令控制台与java环境配置
  • 原文地址:https://www.cnblogs.com/gdwz922/p/10637753.html
Copyright © 2020-2023  润新知