通过matplotlib可视化, 我们可以更直观的看到神经网络的结果

接下来的例子是拟合一个二次曲线,结合上一次构建简单神经网络的代码

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
简单的神经网络通过matplotlib可视化
"""import tensorflow as tf
import numpy as np#导入matplotlig
import matplotlib.pyplot as pltdef add_layer(input_value, in_size, out_size, activate_function=None):#权重Weights = tf.Variable(tf.random_normal([in_size, out_size]))#偏移量biases = tf.Variable(tf.zeros([1,out_size])+0.1)#wx+bWx_plus_b = tf.matmul(input_value,Weights)+biases#有激活函数则使用激活函数计算下一层的值if activate_function is None:outputs = Wx_plus_belse:outputs = activate_function(Wx_plus_b)return outputs#创造些简单的数据
#创建一个300行数值在-1到1 之间的一个输入向量
#np.linspace函数可以生成元素为300的等间隔数列
#np.newaxis的功能是插入新维度
x_data = np.linspace(-1, 1, 300)[:,np.newaxis]
#添加噪声,模拟真实数据,数据格式和x一样
noise = np.random.normal(0, 0.05, x_data.shape)
y_data = np.square(x_data)-0.5+noise#定义placeholder作为神经网络的输入
xs = tf.placeholder(tf.float32,[None,1])
ys = tf.placeholder(tf.float32,[None,1])#添加隐藏层,隐藏层的单元数设为10个,激活函数为relu
l1 = add_layer(xs, 1, 10, activate_function=tf.nn.relu)#添加输出层,输入数据为最后一层隐藏层的输出,激活函数线性函数
prediction = add_layer(l1, 10, 1, activate_function=None)#定义损失函数,损失函数为平方损失
#reduction_indices参数,表示函数的处理维度,
#没有reduction_indices这个参数,此时该参数取默认值None,将把input_tensor降到0维,也就是一个数。
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),reduction_indices=1))#定义训练的公式,tensorflow每执行一次都在重复执行这个训练步骤,
#优化方法是梯度下降法,学习速率是0.1
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)#导入step
#tensorflow定义图结构中有变量时必须先对变量进行初始化,激活变量
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)'''
创建一个画布
'''
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
#添加输入的散点图
ax.scatter(x_data, y_data)
#设置block=False画布循环,否则只展示一次,python3添加plt.ion()
plt.show(block=False)#训练迭代1000次
for i in range(1000):#训练sess.run(train_step, feed_dict={xs : x_data, ys : y_data})#每50步输出一下损失函数的优化情况if i % 50 ==0:'''我们需要展示的是预测值拟合的情况,所以我需要run predictionremove(lines[0])是需要将前一个画的线删除,否则会留下所有的线lines[0]表示第一个'''try:ax.lines.remove(lines[0])except Exception:passprediction_value = sess.run(prediction, feed_dict={xs : x_data})#设置预测值的样式,红色线条,线宽度为5lines = ax.plot(x_data,prediction_value, 'r-', lw = 5)#设置暂停时间为0.1,方便观察plt.pause(0.1)

转载于:https://www.cnblogs.com/xmeo/p/7160035.html

Tensorflow添加matplotlib可视化相关推荐

  1. Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘直方图、自定义边缘直方图的色彩(Marginal Histogram)

    Python使用matplotlib可视化散点图.并在可视化图像的底部和右边添加边缘直方图.自定义边缘直方图的色彩(Marginal Histogram) 目录

  2. Python使用matplotlib可视化发散棒棒糖图、发散棒棒糖图可以同时处理负值和正值、并按照大小排序区分数据、为发散棒棒糖图的特定数据点添加标签、自定义背景填充色、自定义数据点颜色

    Python使用matplotlib可视化发散棒棒糖图.发散棒棒糖图可以同时处理负值和正值.并按照大小排序区分数据.为发散棒棒糖图的特定数据点添加标签.自定义背景填充色.自定义数据点颜色(Diverg ...

  3. Python使用matplotlib可视化箱图、seaborn中的boxplot函数可视化分组箱图、在箱图中添加抖动数据点(Dot + Box Plot)

    Python使用matplotlib可视化箱图.seaborn中的boxplot函数可视化分组箱图.在箱图中添加抖动数据点(Dot + Box Plot) 目录

  4. Python使用matplotlib可视化条形图(bar plot)、自定义在条形图的顶部添加数值标签(Bar Chart)

    Python使用matplotlib可视化条形图(bar plot).自定义在条形图的顶部添加数值标签(Bar Chart) 目录

  5. Python使用matplotlib可视化面积图(Area Chart)、通过给坐标轴和曲线之间的区域着色可视化面积图、在面积图的指定区域添加箭头和数值标签

    Python使用matplotlib可视化面积图(Area Chart).通过给坐标轴和曲线之间的区域着色可视化面积图.在面积图的指定区域添加箭头和数值标签 目录

  6. python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用grey灰色映射、将不同亮度映射到不同的色彩、并添加颜色标尺

    python使用matplotlib可视化.使用matplotlib可视化scipy.misc图像.自定义使用grey灰色映射.将不同亮度映射到不同的色彩.并添加颜色标尺 目录

  7. python使用matplotlib可视化线图(line plot)、在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot)

    python使用matplotlib可视化线图(line plot).在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot) 目录

  8. python使用matplotlib可视化、为可视化图像添加标题(title)、自定义标题的字体格式、字体大小、字体颜色等

    python使用matplotlib可视化.为可视化图像添加标题(title).自定义标题的字体格式.字体大小.字体颜色等 目录

  9. python使用matplotlib可视化、为可视化图像添加图例(legend)、自定义图例的字体格式、字体大小、字体颜色等

    python使用matplotlib可视化.为可视化图像添加图例(legend).自定义图例的字体格式.字体大小.字体颜色等 目录

最新文章

  1. 安卓收取费用_作为自由职业者应收取的费用:以价值为基础的定价是否能达到炒作的目的?...
  2. 程序员杂记:兴趣井”与“机遇缝”
  3. 红楼梦 --- 花开在眼前
  4. java个人学习笔记:取模运算 整数除运算 +运算
  5. Ubuntu 18.0安装教程
  6. KVM虚拟机添加硬盘
  7. Python+Opencv实现自动化阅卷
  8. 用好CloudIDE提升Web全栈编码效率
  9. 洛谷 P1762 偶数
  10. 简易 Vue 构建--篇三
  11. 页面之间传递参数得几种方法
  12. C++ 模板双向不循环链表!!
  13. CodeMirror 多功能在线代码编辑器
  14. 如何在Ubuntu 18.04上安装OpenCV
  15. Linux简单调用so库及Makefile用法
  16. 神经网络图用什么软件做,图神经网络 图像处理
  17. ASDM的一部分功能介绍
  18. 在excel上画交换机面板_如何在Excel中创建面板图
  19. Unity读取CSV表格时出现中文乱码处理方式
  20. miui12系统小米系统安卓系统里面存储空间占用太多如何清理

热门文章

  1. 最近总结了串口(COM)读写操作的三种方式
  2. ListView(3)
  3. 漫步最优化四十二——Partan法
  4. oracle中merge into用法解析
  5. [深度学习-优化]欠拟合与过拟合以及解决方法
  6. python组合数据类型选择题_python基础学习——基础数据类型练习题(二)
  7. Javascript处理时间
  8. Java中大规模集合快速求和计算
  9. org.json的使用详解
  10. C 创建基本图表 Chart Controls