zoukankan      html  css  js  c++  java
  • Tensorflow 训练拟合y = x*0.1+0.3的参数

     tensorflow就是先创建数据流图,然后往进喂数据。在输入层输入数据,然后数据飞到隐藏层飞到输出层,用梯度下降处理,梯度下降会对几个参数进行更新和完善,更新后的参数再次跑到隐藏层去学习,这样一直循环直到结果收敛。动图如下:

    训练过程:

    1.输入x,y数据

    2.将weight,biases用tensor表示出来

    3.求Loss,使用tf.train.GradientDescentOptimizer(0.5).minimize(loss)训练最小化loss

    4.初始化变量

    import tensorflow as tf
    import numpy as np
    #输入x,y数据
    x_data = np.random.rand(100).astype(np.float32)
    y_data = x_data*0.1+0.3
    
    #构建线性模型
    weight = tf.Variable(tf.random_uniform([1],-1.0,1.0))
    biases = tf.Variable(tf.zeros([1]))
    y = x_data*weight+ biases
    #求loss
    loss = tf.reduce_mean(tf.square(y-y_data))
    #定义梯度下降来优化,使loss最小
    train = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
    #初始化变量
    init = tf.global_variables_initializer()
    with tf.Session() as sess:
        sess.run(init)
        for step in range(201):
            sess.run(train)
            if step%20 == 0:
               print(step,sess.run(weight),sess.run(biases),sess.run(loss)) 
            

    注意点:

    在 with tf.Session() as sess:前仅仅是定义了 op的作用,而真正的复制初始化操作是在sess.run(init)进行操作的,sess.run()激活这两个op。

    在打印变量的时候也需要sess.run()

     

  • 相关阅读:
    6、加法算术
    5、找出最大和最小的数
    4、计算并输出圆的面积和周长
    2、函数y=f(x)
    1、两数的平方和
    单片机中断寄存器知识点总结
    创建PCB原理图的模板
    电机知识
    结合实例谈谈航拍全景的方法和技巧
    航拍技巧
  • 原文地址:https://www.cnblogs.com/gaona666/p/12612107.html
Copyright © 2011-2022 走看看