我尝试在tensorflow/keras
中构建自己的自定义层,以强制层保持对称性,最终得到如下代码:
到目前为止,一切顺利。但我不明白的是,为什么最后一行
print(layer.trainable_variables)
返回的是一个空列表:
[]
我以为layer.trainable_variables
会显示我的矩阵,以便我可以检查它是否是对称的。
回答:
你需要使用add_weight
方法添加变量,然后调用build()
方法来创建这个变量。或者,你也可以不直接调用build()
方法,而是在传递输入时(如你在问题中所做的那样),它会隐式地调用build()
方法。