美文网首页
TensorFlow 一个简单的入门用例

TensorFlow 一个简单的入门用例

作者: linanwx | 来源:发表于2017-08-09 14:08 被阅读0次

    案例

    假如我有一系列的数据x-y,x-y之间是呈线性关系的,如果我们需要用一条直线拟合这条直线,我们该如何做?

    下面的程序中,train_x是一系列从-1到1之间的数字,train_y是x的两倍加10,然后随机加了一个0~1之间的数字
    接下来我们建立模型,X和Y是一个待初始化的张量占位符,在优化过程中,模型中的XY会一直改变为train_x和train_y中的数据,然后优化器会进行优化,使得w斜率和b截距按照使误差减小的方向变化,这样,w和b经过迭代最终就使模型满足数据了

    模型建立好了以后,我们开始运行模型。首先打开一个会话,然后一定要记得初始化全部变量。接下来我们对全体数据进行10次遍历,在每一次迭代过程中,将一个坐标输入,并计算误差,然后利用梯度下降更正w和b。最后,我们输出解出来的w和b。

    import tensorflow as tf
    import numpy as np
    
    train_x = np.linspace(-1, 1, 101)
    train_y = 2 * train_x + np.random.rand(train_x.shape[0])  + 10
    
    X = tf.placeholder("float")
    Y = tf.placeholder("float")
    w = tf.Variable(0.0, name = "w")
    b = tf.Variable(0.0, name = "b")
    loss = tf.square(Y - tf.multiply(X,w) - b)
    train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
    
    with tf.Session() as session:
        session.run(tf.global_variables_initializer())
        for i in range(10):
            for x,y in zip(train_x, train_y):
                session.run(train_op, feed_dict={X:x, Y:y})
        print("w: ", session.run(w))
        print("b: ", session.run(b))
    

    运行效果:


    效果效果

    相关文章

      网友评论

          本文标题:TensorFlow 一个简单的入门用例

          本文链接:https://www.haomeiwen.com/subject/lfafrxtx.html