Browse Source

SummaryRecord register close atexit

tags/v0.6.0-beta
Li Hongzhang 5 years ago
parent
commit
22dea2fc18
1 changed files with 6 additions and 6 deletions
  1. +6
    -6
      mindspore/train/summary/summary_record.py

+ 6
- 6
mindspore/train/summary/summary_record.py View File

@@ -13,6 +13,7 @@
# limitations under the License. # limitations under the License.
# ============================================================================ # ============================================================================
"""Record the summary event.""" """Record the summary event."""
import atexit
import os import os
import re import re
import threading import threading
@@ -21,7 +22,7 @@ from mindspore import log as logger


from ..._c_expression import Tensor from ..._c_expression import Tensor
from ..._checkparam import _check_str_by_regular from ..._checkparam import _check_str_by_regular
from .._utils import _make_directory, _check_to_numpy, _check_lineage_value
from .._utils import _check_lineage_value, _check_to_numpy, _make_directory
from ._summary_adapter import get_event_file_name, package_graph_event from ._summary_adapter import get_event_file_name, package_graph_event
from ._writer_pool import WriterPool from ._writer_pool import WriterPool


@@ -102,8 +103,8 @@ class SummaryRecord:
file_suffix="_MS", file_suffix="_MS",
network=None): network=None):


self._closed, self._mode = False, 'train'
self._data_pool = _dictlist()
self._closed, self._event_writer = False, None
self._mode, self._data_pool = 'train', _dictlist()


_check_str_by_regular(file_prefix) _check_str_by_regular(file_prefix)
_check_str_by_regular(file_suffix) _check_str_by_regular(file_suffix)
@@ -141,6 +142,7 @@ class SummaryRecord:
self._event_writer = WriterPool(log_dir, self._event_writer = WriterPool(log_dir,
summary=self.full_file_name, summary=self.full_file_name,
lineage=get_event_file_name('events', '_lineage')) lineage=get_event_file_name('events', '_lineage'))
atexit.register(self.close)


def __enter__(self): def __enter__(self):
"""Enter the context manager.""" """Enter the context manager."""
@@ -327,12 +329,10 @@ class SummaryRecord:
if not self._closed and self._event_writer: if not self._closed and self._event_writer:
# event writer flush and close # event writer flush and close
logger.info('Please wait it may take quite some time to finish writing and closing.') logger.info('Please wait it may take quite some time to finish writing and closing.')
atexit.unregister(self.close)
self._event_writer.close() self._event_writer.close()
self._closed = True self._closed = True


def __del__(self) -> None:
self.close()

@staticmethod @staticmethod
def _parse_from(name: str = None): def _parse_from(name: str = None):
"""Parse the tag and type from name.""" """Parse the tag and type from name."""


Loading…
Cancel
Save