Source code for etna.models.nn.utils
from copy import deepcopy
[docs]class _DeepCopyMixin:
"""Mixin for ``__deepcopy__`` behaviour overriding."""
def __deepcopy__(self, memo):
"""Drop ``model`` and ``trainer`` attributes while deepcopy."""
cls = self.__class__
obj = cls.__new__(cls)
memo[id(self)] = obj
for k, v in self.__dict__.items():
if k in ["model", "trainer"]:
v = dict()
setattr(obj, k, deepcopy(v, memo))
pass
return obj