为了对比,还需要一个能显示 tensorflow 中间层图像的方法
搜索了一下,有几种方法,先按《TensorFlow人工智能引擎入门教程之四 TensorBoard面板可视化管理》来试试
要运行该文,先运行前一篇《TensorFlow人工智能引擎入门教程之三 实现一个自创的CNN卷积神经网络》
先下载数据集
https://raw.githubusercontent.com/petar/GoMNIST/master/data/train-images-idx3-ubyte.gz
https://raw.githubusercontent.com/petar/GoMNIST/master/data/train-labels-idx1-ubyte.gz
https://raw.githubusercontent.com/petar/GoMNIST/master/data/t10k-images-idx3-ubyte.gz
https://raw.githubusercontent.com/petar/GoMNIST/master/data/t10k-labels-idx1-ubyte.gz
载入数据:
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("./data/", one_hot=True)
如果有错误了,按《TENSORFLOW1.0运行之前版本代码报错解决》《TensorFlow不同版本引起的错误》等文章来修改
......
运行结束后,启动 tensorflow tensorborad 面板
python c:\users\k\anaconda3\lib\site-packages\tensorflow\tensorboard\tensorbord.py --logdir=./logs
然后打开网页可以看到输入层的图像了。
再把中间层的多通道图像转换为单通道(因为1.0版本的tf.summary.image不能显示多于4通道图):
# 把图像转换多通道到 1通道(64->1)
def zhuanhuan64_1(name, tensor_64):
for i in range(64):
begin=[0,0,0,i]
size=[1,-1,-1,1]
tensor_1 = tf.slice(tensor_64,begin, size)
tf.summary.image(name,tensor_1 ,max_outputs=64)#
return
然后把它放在第一层输出位置中就可以显示64通道的图像了:
zhuanhuan64_1("conv1", conv1)
最后按照它的样子,在 SRGAN 的 main.py 和 model.py 加上相应的语句,就是可以显示我们的图像了:
结束。