stackoverflow.com/questions/46207211/...

е: Использование нового tf.contrib.data.Dataset удваивает размер моего файла протофаффа графика, и я не могу визуализировать график в Tensorboard.

Детали:

Я пробую новый TensorFlowtf.contrib.data.Dataset функциональность вместе сtf.contrib.learn.Experiment фреймворк. Мои входные данные определены какфункции ввода которые возвращают тензоры функций и меток.

Если я создаю свою функцию ввода сtf.train.slice_input_producer функционировать как в следующем кодовом блоке (полный кодВот), то мой результатgraph.pbtxt файл 620M и.meta файлы размером около 165M.

def train_inputs():
    with tf.name_scope('Training_data'):
        x = tf.constant(mnist.train.images.reshape([-1, 28, 28, 1]))
        y = tf.constant(mnist.train.labels)
        sliced_input = tf.train.slice_input_producer(
            tensor_list=[x, y], shuffle=True)
        return tf.train.shuffle_batch(
            sliced_input, batch_size=batch_size,
            capacity=10000, min_after_dequeue=batch_size*10)

Теперь, если я создаю свою функцию ввода с новымtf.contrib.data.Dataset.from_tensor_slices как в следующем кодовом блоке (полный кодВот), то мой результатgraph.pbtxt файл удваивается в размере до 1,3G и.meta файлы удваиваются в размере до 330M.

def train_inputs():
    with tf.name_scope('Training_data'):
        images = mnist.train.images.reshape([-1, 28, 28, 1])
        labels = mnist.train.labels
        dataset = tf.contrib.data.Dataset.from_tensor_slices(
            (images, labels))
        dataset = dataset.repeat(None)  # Infinite
        dataset = dataset.shuffle(buffer_size=10000)
        dataset = dataset.batch(batch_size)
        iterator = dataset.make_one_shot_iterator()
        next_example, next_label = iterator.get_next()
        return next_example, next_label

Теперь, потому чтоgraph.pbtxt Файл настолько большой, что TensorBoard анализирует этот файл годами, и я не могу визуально отладить график модели. Я нашел вДокументация по набору данных что это увеличение в размерах происходит от:«содержимое массива будет скопировано несколько раз» ирешение будет использовать заполнители. Однако в этом случае для инициализации итератора мне понадобится передать пустые массивы в заполнители с активным сеансом:

sess.run(iterator.initializer, feed_dict={features_placeholder: features, labels_placeholder: labels})

Это кажется, однако, вне моего контроля при использованииtf.contrib.learn.Experiment фреймворк.

Как я могу инициализировать инициализатор итератора с помощью инфраструктуры эксперимента? Или найти обходной путь к использованию API набора данных без увеличения размера моего графика?

Ответы на вопрос(1)

Ваш ответ на вопрос