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()

     

  • 相关阅读:
    docker 笔记
    XML解析
    P1047 校门外的树
    4829 [DP]数字三角形升级版
    1996 矿场搭建
    5524 割点
    4817 江哥的dp题d
    4809 江哥的dp题c
    4816 江哥的dp题b
    4815 江哥的dp题a
  • 原文地址:https://www.cnblogs.com/gaona666/p/12612107.html
Copyright © 2011-2022 走看看