Exemple #1
0
 def autosave(self, mode):
     if "interval" in mode:
         #if 0 == (self.current_epoch + 1) % self.save_interval:
         if 0 == self.current_epoch % self.save_interval:
             save_path = self.save_path + "/" + self.model.name + "-epoch-" + str(self.current_epoch) + ".pkl"
             VideoModel.save(self.model, save_path)
             logger.info("....Saving to " + os.path.abspath(save_path))
     if "best" in mode:
         if self.current_validation_error < self.best_validation_error:
             save_path = self.save_path + "/" + self.model.name + "-validation-best.pkl"
             VideoModel.save(self.model, save_path)
             logger.info("....Saving to " + os.path.abspath(save_path))
     if "final" in mode:
         if self.current_epoch == self.max_epoch:
             save_path = self.save_path + "/" + self.model.name + "-epoch-" + str(self.current_epoch) + ".pkl"
             VideoModel.save(self.model, save_path)
             logger.info("....Saving to " + os.path.abspath(save_path))
############################## attention layer
dst_model.middle_layers[4].param[28].set_value(
    src2_model.middle_layers[2].param[12].get_value())
dst_model.middle_layers[4].param[29].set_value(
    src2_model.middle_layers[2].param[13].get_value())
dst_model.middle_layers[4].param[30].set_value(
    src2_model.middle_layers[2].param[14].get_value())
dst_model.middle_layers[4].param[31].set_value(
    src2_model.middle_layers[2].param[15].get_value())
dst_model.middle_layers[4].param[32].set_value(
    src2_model.middle_layers[2].param[16].get_value())

############################## copy full layers
from_layers = [0, 1, 3, 5]
to_layers = [0, 1, 5, 7]
for ii, jj in zip(from_layers, to_layers):
    if len(src2_model.middle_layers[ii].param) > 0 and len(
            dst_model.middle_layers[jj].param) > 0:
        for src_param, dst_param in zip(src2_model.middle_layers[ii].param,
                                        dst_model.middle_layers[jj].param):
            #assert src_param.name == dst_param.name
            assert src_param.get_value().shape == dst_param.get_value().shape
            dst_param.set_value(src_param.get_value())

# In[5]:

VideoModel.save(dst_model, save_model_file)

# In[ ]: