如何访问 tf.layers.conv2d 中的内核变量?

Posted

技术标签:

【中文标题】如何访问 tf.layers.conv2d 中的内核变量?【英文标题】:How to access kernel variables in tf.layers.conv2d? 【发布时间】:2017-11-30 02:46:27 【问题描述】:

我想可视化卷积层中的权重以观察它们如何变化。

但我找不到在tf.layers.conv2d 中访问卷积层权重的方法

谢谢

【问题讨论】:

【参考方案1】:

您可以通过名称访问该变量:

weights = sess.run('<name_of_your_layer>/weights:0', feed_dict=...)

如果您不确定变量的名称,请打印 tf.trainable_variables() 看看它可能是什么

【讨论】:

【参考方案2】:

由此获得灵感:How to get CNN kernel values in Tensorflow

确保给它一个名字:

conv_layer = tf.layers.conv2d(..., name='YOUR_NAME', ...)

像这样访问变量:

gr = tf.get_default_graph()
conv1_kernel_val = gr.get_tensor_by_name('YOUR_NAME/kernel:0').eval()
conv1_bias_val = gr.get_tensor_by_name('YOUR_NAME/bias:0').eval()

【讨论】:

以上是关于如何访问 tf.layers.conv2d 中的内核变量?的主要内容,如果未能解决你的问题,请参考以下文章

从 tf.layers.conv2d 了解输入/输出张量

tensorflow中踩过的坑

tensorflow1.3 API学习笔记 1

如何从 CodeIgniter 中的视图访问模型

如何使用node.js控制sequelize中的内连接查询?

如何控制grub从磁盘加载到内存中的内容量?