Fix ValueError when save model using `.save_pretrained` due to the non-contiguous tensor in Midm model

#9
by beomi - opened
Files changed (1) hide show
  1. modeling_midm.py +12 -0
modeling_midm.py CHANGED
@@ -460,6 +460,18 @@ class MidmPreTrainedModel(PreTrainedModel):
460
  if isinstance(module, MidmModel):
461
  module.gradient_checkpointing = value
462
 
 
 
 
 
 
 
 
 
 
 
 
 
463
 
464
  @dataclass
465
  class MidmDoubleHeadsModelOutput(ModelOutput):
 
460
  if isinstance(module, MidmModel):
461
  module.gradient_checkpointing = value
462
 
463
+ def make_tensors_contiguous(self):
464
+ for name, param in self.named_parameters():
465
+ if not param.is_contiguous():
466
+ param.data = param.data.contiguous()
467
+
468
+ def save_pretrained(self, save_directory, **kwargs):
469
+ # Make tensors contiguous
470
+ self.make_tensors_contiguous()
471
+
472
+ # Call the original save_pretrained method
473
+ super().save_pretrained(save_directory, **kwargs)
474
+
475
 
476
  @dataclass
477
  class MidmDoubleHeadsModelOutput(ModelOutput):