python - 如何在功能性 Keras 模型中将前一层的权重作为输入传递给自定义层的调用函数?

标签 python keras functional-programming neural-network tensor

对于我的自定义图层的调用方法,我需要一些先前图层的权重,但我不需要修改它们,只需访问它们的值。 我有 How do I get the weights of a layer in Keras? 中建议的值 但这会返回 numpy 数组形式的权重。 因此,我将它们转换为张量(使用 Keras 后端的 tf.convert_to_tensor),但是在创建模型时出现此错误“'NoneType'对象没有属性'_inbound_nodes'”。 我该如何解决这个问题? 谢谢你。

最佳答案

TensorFlow 提供对变量进行分组的图形集合。要访问经过训练的变量,您可以调用 tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES) 或其简写 tf.trainable_variables() 或获取所有变量(包括一些变量)用于统计)使用 tf.get_collection(tf.GraphKeys.VARIABLES) 或其简写 tf.all_variables()

tvars = tf.trainable_variables()
tvars_vals = sess.run(tvars)

for var, val in zip(tvars, tvars_vals):
    print(var.name, val)  # Prints the name of the variable alongside its value.

关于python - 如何在功能性 Keras 模型中将前一层的权重作为输入传递给自定义层的调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59894195/

相关文章:

clojure - Clojure 中的 :foo、::foo、::bar/foo 和 :bar/foo 之间有什么区别?

python - 如何在 Pandas DataFrame 中使用 inside/in 运算符?

python - cx_Oracle.OracleCursor 的类型验证

python - Keras + Tensorflow 和 Python 中的多处理

tensorflow - 我应该如何将经过训练的模型从 google colab 部署到我的计算机

functional-programming - OCaml 中 List.iter 和 List.map 函数的区别

python - 如何检查python列表中是否存在任何值

python - np.array 的 np.array 的深拷贝

python - 如何在 CNN block 上应用 TimeDistributed 层?

Javascript - 如何将原始对象传递给回调函数