Learning Tensorflow (3)
来源:互联网 发布:网络交换机类型的杂志 编辑:程序博客网 时间:2024/06/11 23:00
在学习 Tensorflow 官方文档时,简介介绍了用 tensorflow 针对生成的一些三维数据来拟合一个平面的例子。
import tensorflow as tfimport numpy as np# 使用 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))y = tf.matmul(W, x_data) + b# 最小化方差loss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)# 初始化变量init = tf.initialize_all_variables()# 启动图 (graph)sess = tf.Session()sess.run(init)# 拟合平面for step in xrange(0, 201): sess.run(train) if step % 20 == 0: print step, sess.run(W), sess.run(b)# 得到最佳拟合结果 W: [[0.100 0.200]], b: [0.300]
例子虽然说明了使用 tensorflow 来拟合平面计算方法步骤,但是这里有个小问题,那就是为了构造数据,平面开始已经给出,目标函数的参数初始给定 w = [0.1, 0.2], b = 0.3 , 最后拟合的最佳结果也是这个最终的结果,有点骑着驴找驴的意思,当然也许是为了对比参照。
下面我们尝试给出随机数(不指定参数来构造目标函数)来拟合数据,最后我们通过3D图来验证数据的拟合情况。
import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 构造随机数x_data = np.float32(np.random.rand(2, 150))y_data = np.random.normal(0, 1, 150) # 构建一个线性模型b = tf.Variable(tf.zeros([1]))w = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))y = tf.matmul(w, x_data) + b# 设置损失函数loss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)# 初始化变量init = tf.initialize_all_variables()# 启动图sess = tf.Session()sess.run(init)# 初始化参数w_ = 0b_ = 0for step in xrange(0, 201): sess.run(train) if step % 20 == 0: print step, sess.run(w), sess.run(b) if step == 200: w_ = sess.run(w) b_ = sess.run(b)# 线性拟合的目标函数值y_ = np.matmul(w_ , x_data) + b_# 绘制3D图fig = plt.figure() ax = fig.add_subplot(111, projection='3d')y = np.random.normal(0, 1, 100)# 数据散点图 ax.scatter(x_data[0], x_data[1], y_data)# 原目标函数y值下的曲面ax.plot_trisurf(x_data[0], x_data[1], y_data, color="red") # 拟合的平面ax.plot_trisurf(x_data[0], x_data[1], y_[0], color="blue")plt.show()
如图示,蓝色是我拟合出来的平面,红色是用本身数据来构建的图,从拟合情况来看,蓝色平面丢失了很多数据信息,以此平面来对数据做预测误差会比较大,而现实中很多数据之间关系都是不会像我们构造出来的数据一样规则,很漂亮的反应出我们的设想。
阅读全文
2 0
- Learning Tensorflow (3)
- TensorFlow-3-TensorBoard: Visualizing Learning
- learning tensorflow
- deep learning on tensorflow
- Tensorflow Learning note1
- Learning Tensorflow (1)
- Learning Tensorflow (2)
- Learning Tensorflow (4)
- Learning Tensorflow (5)
- Notes on learning tensorflow
- Deep Learning-TensorFlow (3) CNN卷积神经网络_AlexNet前瞻
- Deep Learning algorithms with TensorFlow
- 【Tensorflow slim】slim learning包
- 【Deep Learning】Tensorflow MNIST测试
- TensorFlow学习笔记9----TensorFlow Wide & Deep Learning Tutorial
- tensorflow线性模型以及Wide deep learning
- tensorflow线性模型以及Wide deep learning
- 学习笔记:TensorFlow Wide & Deep Learning Tutorial
- 半饱是一种生活的的态度
- Establishing SSL connection without server's identity verification is not recommended. According to
- 已知N!之后有几个0,求N
- Qt Creator:Webkit实践
- 最全面的常用正则表达式大全 zz
- Learning Tensorflow (3)
- treelist绑定两个表格
- 切片(python笔记)
- python+selenium+autoit实现文件上传
- Servlet——Session(1)之基础知识
- linux内核 驱动 硬件
- Github简易教程
- 二分查找
- Linux里新建文件/目录的默认权限