本文为学习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
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐