【问题标题】:Can we change kernel values manually of a trained model?我们可以手动更改训练模型的内核值吗?
【发布时间】:2019-12-16 12:03:34
【问题描述】:

我有一个训练有素的模型,我想将一些内核设置为零。通常我们通过使用 kernels = tf.trainable_variables() 获得这些内核权重,然后运行会话以找到这些权重的值。虽然它也给了我们偏差和全连接层的权重,但我对卷积核特别感兴趣。所以如果例如我在第一层有 96 个内核,我想将 Kernel# 04、25、26、48、90 设置为零,使其无法参与处理。它是怎么做的?请帮忙。

【问题讨论】:

  • 找到了解决方案 herethis 可以帮助很多

标签: python tensorflow conv-neural-network


【解决方案1】:

为了社区的利益,在此提及解决方案。

可以通过tf.assign方法执行。代码如下:

v1 = sess.graph.get_tensor_by_name('v1:0') #We should know the name of the Tensor
print(sess.run(v1))   # 1.0
sess.run(tf.assign(v1, 0))
print(sess.run(v1))   # 0.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多