如何访问 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 中的内核变量?的主要内容,如果未能解决你的问题,请参考以下文章