人工智能 |利用卷积实现图像可视化
作者:互联网
问题描述
在学习卷积神经网络部分内容时,我们通常需要掌握一个十分常见的案例,就是对图像实现卷积并可视化,接下来就用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 团队
标签:plt,img,卷积,u64,filter,人工智能,可视化,tf,data 来源: https://blog.51cto.com/u_15281984/2956802