第一个tensorflow程序

图片
最近AlphaGo和AlphaZero的出现,预示着2017年成为人工智能元年,人工智能逐渐进入我们的生活和工作的方方面面,如在工作中,阿里巴巴双十一中,出现了“千人千面”智能推荐系统,鲁班AI设计师,小蜜机器人,IDC智能巡检机器人,还有京东的无人仓库等。这些都让我觉得人工智能越来越重要和越来越感兴趣,所以决定学习python和tensorflow。现在就以一个使用tensorflow构建一元线性模型开始我的人工智能学习吧。

人工智能,机器学习,深度学习关系

人工智能是计算机学科的一个分支,诞生于1956年。机器学习是人工智能的范畴,它包含了深度学习。深度是指多层的意思,模型经过多层的神经网络的训练,不断的学习和调整模型的参数,最后得到最优损失函数最小的模型。深度学习能够有效的处理现实生活中的“非线性”问题。tensorflow是目前最受欢迎的深度学习框架。

几个tensorflow的关键词语,张量,流,计算图。更多的建议阅读:《Tensorflow实战》

下面直接上最简单的一元线性回归模型代码:
电脑环境:

  • python版本:3.6.3.
  • tensorflow版本:cpu版,1.3
  • window 7 64位
  • IDE:PyCharm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import tensorflow as tf

session = tf.Session()
# X轴参数
w = tf.Variable([.3], dtype=tf.float32)
# 偏移量
b = tf.Variable([-.3], dtype=tf.float32)
# x轴
x = tf.placeholder(tf.float32)
# 一元线性模型
linear_model = w * x + b
# 实际值
y = tf.placeholder(tf.float32)
# 观测值和实际值的误差的平方差
squared_deltas = tf.square(linear_model - y)
# 最少二乘法。损失函数
loss = tf.reduce_sum(squared_deltas)
# 优化器.优化函数
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
# 初始化所有的变量
init = tf.global_variables_initializer()
session.run(init)
# 开始训练。训练的过程就是结合优化函数使损失函数的损失最少
x_train = [1,2,3,4]
y_train = [0, -1,-2,-3]
for i in range(1000):
session.run(train, {x: x_train, y: y_train})
# 训练的结果
curr_W, curr_b, curr_loss = session.run([w, b, loss], {x: x_train, y: y_train})
print("W: %s b: %s loss: %s"%(curr_W, curr_b, curr_loss))

模型输出结果是:

1
W: [-0.9999969] b: [ 0.99999082] loss: 5.69997e-11

公式表示是:$Y=-0.9999969X + 0.99999082$, 损失为:5.69997e-11