Запись __ init __ функционирует, чтобы использоваться в django модели

«Состояние» слоя GRU обычно будет таким же, как «выход». Однако, если вы передадите return_state=True и return_sequence=True, то выход слоя будет выводиться после каждого элемента последовательности, а состояние будет только состоянием после обработки последнего элемента последовательности.

Вот пример кодера / декодера для сети seq-2-seq, использующей уровни GRU

#Create layers
encoder_input_layer = Input(shape=(None,))
encoder_embedding_layer = Embedding(len(vocab), THOUGHT_VECTOR_SIZE)
encoder_gru_layer = GRU(THOUGHT_VECTOR_SIZE, return_state=True)

decoder_input_layer = Input(shape=(None,))
decoder_embedding_layer = Embedding(len(vocab), THOUGHT_VECTOR_SIZE)
decoder_gru_layer = GRU(THOUGHT_VECTOR_SIZE, return_sequences=True)
decoder_dense_layer = Dense(len(vocab), activation='softmax')


#connect network
encoder = encoder_embedding_layer(encoder_input_layer)
encoder, encoder_state = encoder_gru_layer(encoder)

decoder = decoder_embedding_layer(decoder_input_layer)
decoder = decoder_gru_layer(decoder, initial_state=encoder_state)
decoder = decoder_dense_layer(decoder)

model = Model([encoder_input_layer, decoder_input_layer], decoder)

Но, с вашей точки зрения, использование return_state здесь на самом деле не нужно в качестве вывода состояние от encoder_gru_layer будет таким же.

68
задан daaawx 25 May 2019 в 05:35
поделиться

2 ответа

Использование встроенных функций Django и передача именованных параметров было бы самым простым способом.

p = User(name="Fred", email="fred@example.com")

Но если вы настроены на сохранение некоторых нажатий клавиш, я бы предложил добавить статический метод удобства класса вместо того, чтобы возиться с инициализатором.

# In User class declaration
@classmethod
def create(cls, name, email):
  return cls(name=name, email=email)

# Use it
p = User.create("Fred", "fred@example.com")
100
ответ дан 24 November 2019 в 14:09
поделиться

Django ожидает, что сигнатура конструктора модели будет (self, * args, ** kwargs) или какое-то разумное факсимильное сообщение. Если вы изменили подпись на что-то совершенно несовместимое, она сломалась.

43
ответ дан 24 November 2019 в 14:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: