加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何在Tensorflow中可视化cnn中的权重(变量)?

发布时间:2020-12-20 10:32:42 所属栏目:Python 来源:网络整理
导读:在训练cnn模型后,我想要显示重量或打印出重量,我该怎么办? 我甚至无法在训练后打印出变量. 谢谢! 解决方法 要显示权重,可以使用 tf.image_summary() op将卷积过滤器(或过滤器的一部分)转换为摘要原型,使用 tf.train.SummaryWriter 将其写入日志,并使用 Ten
在训练cnn模型后,我想要显示重量或打印出重量,我该怎么办?
我甚至无法在训练后打印出变量.
谢谢!

解决方法

要显示权重,可以使用 tf.image_summary() op将卷积过滤器(或过滤器的一部分)转换为摘要原型,使用 tf.train.SummaryWriter将其写入日志,并使用 TensorBoard显示日志.

假设你有以下(简化)程序:

filter = tf.Variable(tf.truncated_normal([8,8,3]))
images = tf.placeholder(tf.float32,shape=[None,28,28])

conv = tf.nn.conv2d(images,filter,strides=[1,1,1],padding="SAME")

# More ops...
loss = ...
optimizer = tf.GradientDescentOptimizer(0.01)
train_op = optimizer.minimize(loss)

filter_summary = tf.image_summary(filter)

sess = tf.Session()
summary_writer = tf.train.SummaryWriter('/tmp/logs',sess.graph_def)
for i in range(10000):
  sess.run(train_op)
  if i % 10 == 0:
    # Log a summary every 10 steps.
    summary_writer.add_summary(filter_summary,i)

执行此操作后,您可以启动TensorBoard以显示/ tmp / logs中的日志,并且您将能够看到过滤器的可视化.

请注意,此技巧可将深度为3的滤镜显示为RGB图像(以匹配输入图像的通道).如果您有更深的过滤器,或者它们没有意义解释为颜色通道,您可以使用tf.split() op在深度维度上拆分过滤器,并为每个深度生成一个图像摘要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读