tensorflow的基本用法(一)

作者: SnailTyan | 来源:发表于2017-04-08 23:14 被阅读411次

    文章作者:Tyan
    博客:noahsnail.com | CSDN | 简书

    本文主要是以求解线性回归的参数为例,讲解一下tensorflow的用法。下面的代码中我们自己构建了一个线性回归模型y = 0.1 * x + 0.3,然后我们使用tensorflow来进行了求解。Demo源码及解释如下:

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    
    import tensorflow as tf
    import numpy as np
    
    # 随机生成100个浮点数
    x_data = np.random.rand(100).astype(np.float32)
    # y=0.1*x+0.3,这样就构造了训练数据(x_data,y_data)
    y_data = x_data * 0.1 + 0.3
    
    # 定义线性回归的权重参数
    Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
    # 定义线性回归的偏置参数
    Biases = tf.Variable(tf.zeros([1]))
    
    # 构建线性回归模型
    y = Weights * x_data + Biases
    # 计算线性回归的损失函数
    loss = tf.reduce_mean(tf.square(y - y_data))
    
    # 定义线性回归的求解方法,梯度下降法,学习率为0.5
    optimizer = tf.train.GradientDescentOptimizer(0.5)
    # 使用tensorflow求解
    train = optimizer.minimize(loss)
    # 初始化tensorflow的所有变量
    init = tf.initialize_all_variables()
    # 定义tensorflow的session
    sess = tf.Session()
    # 将初始化数据放入到session中,执行时会用到
    sess.run(init)
    
    # 迭代201次求解线性回归参数
    for step in range(201):
        # session执行训练
        sess.run(train)
        if step % 20 == 0:
            # 每迭代二十次输出一次结果
            print step, sess.run(Weights), sess.run(Biases)
    

    执行结果如下图:

    0 [ 0.46898228] [ 0.12989661]
    20 [ 0.18490312] [ 0.25323763]
    40 [ 0.1203066] [ 0.28881568]
    60 [ 0.10485679] [ 0.29732502]
    80 [ 0.10116163] [ 0.29936022]
    100 [ 0.10027781] [ 0.29984701]
    120 [ 0.10006645] [ 0.29996341]
    140 [ 0.10001589] [ 0.29999125]
    160 [ 0.10000382] [ 0.29999793]
    180 [ 0.10000091] [ 0.29999951]
    200 [ 0.10000024] [ 0.29999989]
    

    从结果中可以看出,求解的结果还是很准确的。

    相关文章

      网友评论

        本文标题:tensorflow的基本用法(一)

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