From fd56b8b3f1330549a07f6eefd5598f9d7eb60e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E7=8E=AE=E6=96=87?= Date: Mon, 23 Aug 2021 18:17:22 +0800 Subject: [PATCH] [FEATURE] MXIndexedRecordIO: avoid re-build index When resetting, avoid re-build index for read-only instances to save time and memory (in case of forked, memory pages can be shared) --- python/mxnet/recordio.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/python/mxnet/recordio.py b/python/mxnet/recordio.py index eb861147b967..b1d972e9cfe4 100644 --- a/python/mxnet/recordio.py +++ b/python/mxnet/recordio.py @@ -245,10 +245,11 @@ def __init__(self, idx_path, uri, flag, key_type=int): def open(self): super(MXIndexedRecordIO, self).open() - self.idx = {} - self.keys = [] self.fidx = open(self.idx_path, self.flag) - if not self.writable: + if self.writable: + self.idx = {} + self.keys = [] + elif not self.idx: for line in iter(self.fidx.readline, ''): line = line.strip().split('\t') key = self.key_type(line[0])