При обучении модели с использованием OpenNMT-py в качестве вывода мы получаем dict, содержащий веса и смещения сети.Тем не менее, эти тензоры имеют require_grad = False и, следовательно, не имеют градиента.Например.с одним слоем мы могли бы иметь следующие тензоры, обозначающие вложения, а также веса и смещения в кодере и декодере.Ни один из них не имеет атрибута градиента.
encoder.embeddings.emb_luts.0.weight
decoder.embeddings.emb_luts.0.weight
encoder.rnn.weight_ih_l0
encoder.rnn.weight_hh_l0
encoder.rnn.bias_ih_l0
encoder.rnn.bias_hh_l0
decoder.rnn.layers.0.weight_ih
decoder.rnn.layers.0.weight_hh
decoder.rnn.layers.0.bias_ih
decoder.rnn.layers.0.bias_hh
Можно ли сделать OpenNMT-py для установки require_gradient =Правда с какой-то опцией я не нашел или есть какой-то другой способ получить градиент этих тензоров?