Open 808vita opened 2 months ago
The error in your code lies in the way you are calling the superclass's __init__
method in your MyModel
class. The super().__init__
function should not take self
as a parameter. In Python 3, you can simply call super().__init__()
without any arguments.
Change this line:
super().__init__(self)
to this:
super().__init__()
So, your corrected class definition should look like this:
class MyModel(tf.keras.Model):
def __init__(self, vocab_size, embedding_dim, rnn_units):
super().__init__()
self.embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim)
self.gru = tf.keras.layers.GRU(rnn_units,
return_sequences=True,
return_state=True)
self.dense = tf.keras.layers.Dense(vocab_size)
def call(self, inputs, states=None, return_state=False, training=False):
x = inputs
x = self.embedding(x, training=training)
if states is None:
states = self.gru.get_initial_state(x)
x, states = self.gru(x, initial_state=states, training=training)
x = self.dense(x, training=training)
if return_state:
return x, states
else:
return x
TypeError: Layer.init() takes 1 positional argument but 2 were given