tenorflow 2.0 создает потребление памяти tfrecords - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть набор данных, организованный следующим образом:

patient_{i}/dataset_{j}

, где i и j - целочисленные индексы. Теперь для каждой папки набора данных dataset_{j} я бы хотел создать отдельную запись tfrecord (я использую стабильную версию Tensorflow 2.0). Для этого у меня есть следующий код:

        for path in paths:  
            dset = self.get_dset(path, only_labelled=self.only_labelled)
            self._create_record(dset, os.path.split(path)[0], self.tfrecord_filename)

get_dset ничего не делает, только возвращает набор данных, используя tf.data.Dataset.from_tensor_slices, а create_record не делает ничего, кроме сериализации набора данных и записи его на диск. Таким образом, как только я доберусь до новой итерации цикла, я нигде не буду охотно хранить ранее созданные / сохраненные наборы данных. Тем не менее, по мере прохождения цикла потребление памяти продолжает расти. Это ожидаемое поведение, которое имеет отношение к графам TF, создаваемым в фоновом режиме для выполнения функций TF? Я бы подумал, что то, что я делаю, является довольно стандартной вещью, когда объем данных, которые будут использоваться, слишком велик, чтобы поместиться в памяти, поэтому я не вижу, по какой причине tf будет хранить данные в ОЗУ. Любая подсказка / предложение относительно того, как избежать этого, будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...