【tensorflow】tensorflow入门小例子

最近学习了下tensorflow,感觉这玩意有点类似matlab拟合曲线。给你一堆数据,然后进行数学建模,然后求出合适的模型中的各个参数

来看看下面这个例子,我们构造一些离散的点,这些点我们暂且从 y = 0.1x + 0.3 (样本函数)这个曲线中拿得。
根据这些点的特征,我们大概建立一个线性模型 y = Wx + b,然后把这些点喂给tensorflow,求出越来越精确的W和b的值

详细源码及解释如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# author: arvik
# blog: http://blog.csdn.net/u012819339
# email: [email protected]

#本例子取一个一次函数(y = Wx + B)上的一些离散的点,给tensorflow训练,让tensorflow得出一次函数中的权重W和偏移量B

import tensorflow as tf
import numpy as np

#构造一些离散的点
x_data = np.random.rand(1000).astype(np.float32)
y_data = x_data * 0.1 + 0.3


#tensorflow建模
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))  #设置权重的初始值1以及变化范围(-1, 1)
biases = tf.Variable(tf.zeros([1])) #设置偏移量的初始值为0
y = Weights * x_data + biases #对以上离散的点建立一个一次函数的数学模型


#实际值和预测值的差值平方再求平均值,训练的目的就是要让这个loss越来越小
loss = tf.reduce_mean(tf.square(y-y_data))
#优化器,,目前选择梯度下降法来优化,步长(学习效率)选择0.5
optimizer = tf.train.GradientDescentOptimizer(0.5)
#训练目的,减少loss
train = optimizer.minimize(loss)

#初始化所有的变量
#init = tf.initialize_all_variables()  #该函数已经被弃用
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)

#训练
for step in range(400):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))

sess.close()

效果:
运行了两次,我们发现W和b值越来越接近我们的样本函数中的参数值
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u012819339/article/details/75088437