Fix ValueError when save model using `.save_pretrained` due to the non-contiguous tensor in Midm model
#9
by
beomi
- opened
- 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):
|