【发布时间】:2020-12-02 14:52:17
【问题描述】:
我想知道是否有人知道 build() 函数是如何从 tf.keras.layers.Layer 类的底层工作的。根据documentation:
当您知道输入张量的形状并且可以 做剩下的初始化工作
所以对我来说,班级的行为似乎与此类似:
class MyDenseLayer:
def __init__(self, num_outputs):
self.num_outputs = num_outputs
def build(self, input_shape):
self.kernel = self.add_weight("kernel",
shape=[int(input_shape[-1]), self.num_outputs])
def __call__(self, input):
self.build(input.shape) ## build is called here when input shape is known
return tf.matmul(input, self.kernel)
我无法想象 build() 会永远被调用 __call__,但它是唯一传入输入的地方。有谁知道这到底是如何工作的?
【问题讨论】:
标签: python tensorflow keras