前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >人工智能 |利用卷积实现图像可视化

人工智能 |利用卷积实现图像可视化

作者头像
算法与编程之美
发布2020-09-08 17:08:23
4890
发布2020-09-08 17:08:23
举报

问题描述

在学习卷积神经网络部分内容时,我们通常需要掌握一个十分常见的案例,就是对图像实现卷积并可视化,接下来就用TensorFlow进行案例演示。

解决方案

首先,要绘制图像,需要先了解Matplotlib,它是Python的一个绘图库,是Python中最常用的可视化工具之一,可以非常方便地创建2D图表和一些基本的3D图表。本案例中就要调用Matplotlib来进行绘图。

具体可视化过程,先要读取文件数据然后转化为张量,利用过滤器转换成tf变量。(每个filter通过自己的卷积核集处理数据,形成一个单通道输出,加上偏置项后,我们得到了一个最终的单通道输出。如果存在多个filter,这时我们可以把这些最终的单通道输出组合成一个总输出,它的通道数就等于filter数)。

然后进行卷积过程,最后全局初始化,再判断是否为灰度图片,进行转化后,用plt.show()调用图片显示。

以上,即完成图像可视化过程。

import tensorflow.compat.v1 as tf tf.disable_v2_behavior() import matplotlib.pyplot as plt #读取jpg文件 original_data = tf.read_file("img1.jpg") #解析数据 img_data = tf.image.decode_jpeg(original_data) img_data = tf.cast(img_data, tf.float64) filter = tf.Variable(tf.random_normal(shape=[5,5,3,3], dtype=tf.float64)) img_filter_data = tf.nn.conv2d([img_data], filter, [1, 1, 1, 1], padding='SAME') #值类型转换 img_filter_data_u64 = tf.cast(img_filter_data, tf.uint64) with tf.Session() as sess: tf.global_variables_initializer().run() img_filter_data_u64 = sess.run(img_filter_data_u64) b,h,w,c = (img_filter_data_u64.shape) #如果是灰度图片,需转换一下,才能在plt上显示 if c == 1: img_filter_data_u64 = img_filter_data_u64.reshape(b,h,w) plt.imshow(img_filter_data_u64[0]) plt.show()

运行结果:

END

实习主编 | 王楠岚

责 编 | wrape

where2go 团队


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档