本文为学习TensorFlow中文社区内容后的个人整理、总结,并对一些代码中的错误进行的修正和解释。
先看一个示例,可以简单明白基于tensorflow的机器学习到底是什么东西,是怎么实现的,以及tensorflow库在里面扮演什么角色。
案例:Python 程序生成了一些三维数据, 然后用一个平面拟合它
import tensorflow as tf
import numpy as np
# os 这两句代码是我自己加的,以规避掉AVX警告
# 可参见文章<机器学习——TensorFlow库使用中遇到的报错情况>
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 100)) # 随机输入
y_data = np.dot([0.100, 0.200], x_data) + 0.300
# 构造一个线性模型
#
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random.uniform([1, 2], -1.0, 1.0)) ## 原文使用random_uniform报错
y = tf.matmul(W, x_data) + b
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
#optimizer = tf.compat.v1.train.GradientDescentOptimizer(0.5)
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# 初始化变量
init = tf.initialize_all_variables()
# 启动图 (graph)
sess = tf.Session()
sess.run(init)
# 拟合平面
#原文使用xrange(0,201)报错
for step in range(0, 201):
sess.run(train)
#每20组显示一组训练情况
if step % 20 == 0:
print (step, sess.run(W), sess.run(b))
# 得到最佳拟合结果 W: [[0.100 0.200]], b: [0.300]
# 运行结果如下
![87aa46d4607a422e588838edfc8628e0.png](https://i-blog.csdnimg.cn/blog_migrate/9ad13aa7d7184f6d3c8508c51782a5b1.jpeg)