Сеанс Tensorflow - ValueError: GraphDef не может быть больше, чем 2 ГБ - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь перебрать партии наборов данных и выполнить вывод на предварительно обученной модели.Я создал сеанс и загрузил модель следующим образом:

import numpy as np

sess = tf.Session()

saver = tf.train.import_meta_graph('model_resnet/imagenet.ckpt.meta')
saver.restore(sess, "model_resnet/imagenet.ckpt")

# To view the graph in tensorboard:
summary_writer = tf.summary.FileWriter("/tmp/tensorflow_logdir", graph=tf.get_default_graph())

# To retrieve outputs of layer while inferring
def getActivations(layer,stimuli):
    units = sess.run(layer,feed_dict={"Placeholder_:0": stimuli, keep_prob:1.0})

# Convert to TF Dataset
dataset_train = tf.data.Dataset.from_tensor_slices((X_train, y_train))
dataset_test = tf.data.Dataset.from_tensor_slices((X_test, y_test))

# Create batches
dataset = dataset_train.batch(32)

# Iterator to iterate over images in batch
iterator = dataset.make_one_shot_iterator()

next_element = iterator.get_next()

try:
    getActivations("resnet/pool:0",sess.run(next_element[1]))
except tf.errors.OutOfRangeError:
    print("End of dataset")  # ==> "End of dataset"

Я получаю эту ошибку:

ValueError: GraphDef не может быть больше 2 ГБ.

Возможно, я неверно истолковал точное значение графика.Я не понимаю, почему одна итерация над 32 изображениями приведет к расширению графа.Добавляют ли мои операции график подготовленных моделей?В соответствии с тем, что я обнаружил до сих пор, добавление операции к графику TF выполняется с использованием add или tf.'function_name ', это правильно?

Любая помощь или указатели на примеры приветствуются.

Спасибо.

1 Ответ

0 голосов
/ 30 сентября 2018

Я перебрал здесь подобные вопросы и применил несколько методов, чтобы избавиться от ошибки:

  • Использование заполнителей для загрузки данных:

    features_placeholder = tf.placeholder(X_train.dtype, X_train.shape)
    labels_placeholder = tf.placeholder(y_train.dtype, y_train.shape)
    dataset = tf.data.Dataset.from_tensor_slices((features_placeholder, labels_placeholder))
    
  • Использование с для создания сеанса и загрузки графика с использованием метода:

    with tf.Session() as sess:
    
        initialize_iterator(sess, iterator, X_train, y_train)
        next_element = iterator.get_next()
    
        load_graph(sess)
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...