#deep-learning #neural-network #embedding
Вопрос:
Есть ли способ ограничить размеры вложения, чтобы они не были отрицательными? Я попробовал встроить_констринт = tf.keras.ограничения.NonNeg(), но когда я печатаю веса, некоторые из них отрицательные.
Embedding(embed_input_dim, self.embed_output, input_length=embed_input_length, embeddings_constraint = tf.keras.constraints.NonNeg(), name = 'Embed_Request')(state_input) print(self.model.get_layer('Embed_Request').get_weights()[0]) output:[array([[-0.03530975, -0.00357432, -0.02751002, ..., 0.01519774, -0.04078618, 0.03334286], [-0.0059206 , 0.01738295, -0.020679 , ..., -0.03848881, -0.0269975 , 0.025242 ], [-0.02481667, 0.03084642, 0.02665417, ..., -0.04804039, -0.01495937, 0.01566639], ..., [-0.04929062, -0.03186668, 0.04426355, ..., 0.0278681 , -0.02907564, 0.00960131], [ 0.01267063, -0.00036066, 0.01877231, ..., -0.01406764, -0.01417869, -0.00672583], [ 0.00624986, -0.01128934, 0.0309539 , ..., 0.01535386, -0.02734694, 0.01445917]], dtype=float32)]
Комментарии:
1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
2. Я не уверен, правильно ли я интерпретировал, но из вашего фрагмента похоже, что вы хотите, чтобы вложения были инициализированы как ненулевые. В документации упоминалось, что эти константы применяются во время обучения, поэтому, возможно, вам следует обучить свою сеть и посмотреть на встраивания после обучения?