利用Tensorflow和matplotlib直观理解CNN的卷积层与池化层
2018-01-16 21:43
447 查看
卷积神经网络,CNN(Convolutional Neural Network),卷积神经网络是一种多层神经网络,擅长处理图像相关的深度学习问题。 与普通神经网络的区别在于,卷积神经网络包含了由卷积层(Convolutional layer)和池化层(Pooling layer)构成的特征抽取器。 本文旨在通过调用tensorflow封装好的卷积操作和池化操作函数以及python的matplotlib库,直观地感受一张图片经过卷积层和池化层之后的效果,代码如下:
原始图片如下:
卷积和池化效果如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- import matplotlib.pyplot as plt import tensorflow as tf from PIL import Image import numpy img = Image.open('dog.jpg') img_ndarray = numpy.asarray(img, dtype='float32') print(img_ndarray.shape) img_ndarray=img_ndarray[:,:,0] plt.figure() plt.subplot(221) plt.imshow(img_ndarray) w=[[-1.0,-1.0,-1.0], [-1.0,9.0,-1.0], [-1.0,-1.0,-1.0]] with tf.Session() as sess: img_ndarray=tf.reshape(img_ndarray,[1, 633, 650,1]) w=tf.reshape(w,[3,3,1,1]) img_cov=tf.nn.conv2d(img_ndarray, w, strides=[1, 1, 1, 1], padding='SAME') image_data=sess.run(img_cov) print(image_data.shape) plt.subplot(222) plt.imshow(image_data[0,:,:,0]) img_pool=tf.nn.max_pool(img_ndarray, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME') image_data = sess.run(img_pool) plt.subplot(223) plt.imshow(image_data[0, :, :, 0]) plt.subplot(224) img_pool = tf.nn.max_pool(img_ndarray, ksize=[1, 4, 4, 1], strides=[1, 4, 4, 1], padding='SAME') image_data = sess.run(img_pool) plt.imshow(image_data[0, :, :, 0]) plt.show()
原始图片如下:
卷积和池化效果如下:
相关文章推荐
- 利用Matplotlib、Numpy、SciPy 画散乱数据点的等高线图
- spyder(tensorflow)运行出现ImportError: No module named 'matplotlib'
- Python 利用matplotlib绘制热力图 correlation heatmap X,Y 坐标轴字体重叠显示问题,将字体进行旋转
- Mac运行Tensorflow的matplotlib问题
- Python利用matplotlib做图中图及次坐标轴
- Python及其接口函数库(TensorFlow、NumPy、Matplotlib、sklearn、pandas)参考资料(更新中,更新日期:2017-07-10)
- 股票量化分析(3)——matplotlib利用tushare的股票数据画一般图、k线图
- 【Python】 利用Matplotlib验证进出场点
- tensorflow安装matplotlib踩过的坑
- Python利用matplotlib生成图片背景及图例透明的效果
- ubuntu下Tensorflow 报错: ImportError: No module named 'matplotlib'
- tensorflow 在anaconda 环境下import matplotlib.pyplot失败
- matplotlib利用scatter绘制彩色图像:NameError: name 'array' is not defined
- 利用python中matplotlib打印混淆矩阵
- 7057-1.Python数据可视化:利用matplotlib中的subplot进行图中图展示
- 在Mac上如何安装Tensorflow和Matplotlib
- 理解matplotlib、pylab与pyplot之间的关系
- 利用tensorflow实现神经网络卷积层、池化层、全连接层
- windows64位Python3.5.2基础上,安装numpy、matplotlib、scipy(whl文件)安装tensorflow及sklearn包
- win10下tensorflow和matplotlib安装教程