Конструкция конвейера tf.data для оптимизации производительности - PullRequest
0 голосов
/ 08 ноября 2018

Я новичок в TensorFlow, и я хотел бы знать, что существует какой-либо конкретный порядок установки набора данных с использованием tfdata. Например:

    data_files = tf.gfile.Glob("%s%s%s" % ("./data/cifar-100-binary/", self.data_key, ".bin"))
    data = tf.data.FixedLengthRecordDataset(data_files, record_bytes=3074)
    data = data.map(self.load_transform)
    if self.shuffle_key:
        data = data.shuffle(5000)

    data = data.batch(self.batch_size).repeat(100)
    iterator = data.make_one_shot_iterator()
    img, label = iterator.get_next()
    # label = tf.one_hot(label, depth=100)
    print('img_shape:', img.shape)

В этом случае я читаю данные, затем перетасовываю данные, затем выполняю партию и повторяю спецификации. При использовании этого метода ОЗУ моего компьютера увеличивается на 2%

и затем я попробовал еще один метод:

    data_files = tf.gfile.Glob("%s%s%s" % ("./data/cifar-100-binary/", self.data_key, ".bin"))
    data = tf.data.FixedLengthRecordDataset(data_files, record_bytes=3074)
    data = data.map(self.load_transform)
    data = data.batch(self.batch_size).repeat(100)
    if self.shuffle_key:
        data = data.shuffle(5000)
    iterator = data.make_one_shot_iterator()
    img, label = iterator.get_next()
    # label = tf.one_hot(label, depth=100)
    print('img_shape:', img.shape)

так что в этом случае, когда я сначала указываю размер пакета, повторяю, а затем перемешиваю использование ОЗУ, увеличивается на 40% (я не знаю почему), было бы здорово, если бы кто-то помог мне разобраться с этим. Так есть ли последовательность, которой я всегда должен следовать, чтобы определить набор данных в тензорном потоке, используя tf.data?

...