在训练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, 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在深度维度上拆分过滤器,并为每个深度生成一个图像摘要.
查看更多关于在Python中如何在Tensorflow中可视化cnn中的权重(变量)?的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did171200