我遇到了如下示例,
class Model(tf.keras.Model):
def __init__(self, vocab_size, embedding_dim, dim, batch_sz):
super(Model, self).__init__()
self.dim = dim
self.embedding = Embedding(vocab_size, embedding_dim)
self.lstm = LSTM(self.enc_units,
recurrent_initializer='glorot_uniform')
为什么我们要使用super(Encoder, self).__init__()
?我对使用python进行面向对象的编程不是很熟悉。
答案 0 :(得分:2)
由于您是从父类的class Model(tf.keras.Model):
继承过来的,因此在某些情况下,父类或超级类也必须初始化。由于您有两个__init__
函数来知道您要访问的是哪个函数,因此通常使用父类__init__
方法。