从 SRGAN(TensorFlow) 导出中间层图像数据到文本文件

本文介绍如何使用TensorFlow的py_func函数导出神经网络中间层的图像数据到文本文件,以便于对比和分析不同层的输出特征。通过自定义函数保存图像通道数据,并转换为单通道图像进行可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了便于比对定位每一层的不同,需要从 TensorFlow 导出中间层图像数据到文本文件,再载入我们的某一层输入,来看看输出有什么不同?

在《经验干货:使用tf.py_func函数增加Tensorflow程序的灵活性》一文中介绍了py_func函数,所以我们在前面的基础上,也来个py_func函数。

保存数据函数:

def _save_mat(name, tensor_x): # 保存多通道图像数据到txt文件
	print(tensor_x.shape)
	f=open(name.decode('utf-8')+'.txt','w')
	for i in range(tensor_x.shape[3]):#图像通道数
		v_2d=tensor_x[0, :, :,i] #取出一个通道
		w=v_2d.shape[0] #图像宽高
		h=v_2d.shape[1]
		for Ii in range(w):
			for Ji in range(h):
				strNum = str(v_2d[Ii,Ji]) #每一点数据
				f.write(strNum)
				f.write(' ')#数据间隔一空格
			f.write('\n')
		f.write('\n')#通道间隔一空行
	f.close()
	return

py_func调用函数:

def _zhuanhuan_x_1(name, tensor_x,i): # 多通道图像转换1通道
	_save_mat(name, tensor_x)
	v_2d=tensor_x[0, :, :,i]
	return v_2d

前面的 zhuanhuan_64_1 已经改为 zhuanhuan_x_1:

# 多通道转换1通道,并保存图像 以及保存多通道图像数据到txt文件
def zhuanhuan_x_1(name, tensor_x):
	for i in range(1):
		tensor_1 = tf.py_func(_zhuanhuan_x_1, [name, tensor_x,i],tf.float32)# 调用
		conv1out = tf.reshape(tensor_1, shape=[1, tf.shape(tensor_1)[0], tf.shape(tensor_1)[1], 1]) # 2d->4d
		tf.summary.image(name, conv1out,max_outputs=64)
	return

这样就可以导出每一层数据了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值