Как безопасно клонировать модуль pytorch? Быстрее ли создать новый? #Пыторч

#deep-learning #pytorch #copy #clone

Вопрос:

Мне нужно повторно создать несколько модулей, которые полностью совпадают.

В следующем коде я заполняю два одинаковых списка N одинаковыми модулями.

         MIM_N_cell = []
        MIM_S_cell = []
        for i in range(self.num_layers - 1):
            new_MIM_N_cell = MIM_NS_cell(input_dim=self.hidden_dim,
                                         hidden_dim=self.hidden_dim,
                                         kernel_size=self.kernel_size,
                                         model_cfg=model_cfg)
            new_MIM_S_cell = MIM_NS_cell(input_dim=self.hidden_dim,
                                         hidden_dim=self.hidden_dim,
                                         kernel_size=self.kernel_size,
                                         model_cfg=model_cfg)
            MIM_N_cell.append(new_MIM_N_cell)
            MIM_S_cell.append(new_MIM_S_cell)

        self.MIM_N_cell = nn.ModuleList(MIM_N_cell)
        self.MIM_S_cell = nn.ModuleList(MIM_S_cell)
 

Должен ли я использовать .clone() вместо создания нового модуля каждый раз?

Я предполагаю, что клонирование может быть быстрее, но я не знаю о побочных эффектах этого. Если его стоит клонировать, как его безопасно использовать (т. Е. Не изменять поведение сети при обучении/тестировании)