TensorFlow: каждая итерация в обучающем цикле медленнее [дубликата]

На этот вопрос уже есть ответ здесь:

Время обработки увеличивается и увеличивается после каждой итерации (TensorFlow) 1 ответ

Я тренирую стандартный, многослойный перцептрон ANN с тремя скрытыми слоями в TensorFlow. Я добавил текстовый индикатор выполнения, чтобы я мог наблюдать за ходом итераций по эпохам. Я обнаружил, что время обработки на одну итерацию увеличивается после первых нескольких эпох. Вот пример снимка экрана, показывающий увеличение с каждой итерацией:

В этом случае первые несколько итераций заняли примерно 1,05 с / это, а на 100% - 4,01 с / это.

Соответствующий код указан здесь:

# ------------------------- Build the TensorFlow Graph -------------------------

with tf.Graph().as_default():

    (a bunch of statements for specifying the graph)

# --------------------------------- Training ----------------------------------

    sess = tf.InteractiveSession()
    sess.run(tf.initialize_all_variables())

    print "Start Training"

    pbar = tqdm(total = training_epochs)
    for epoch in range(training_epochs):
        avg_cost = 0.0
    batch_iter = 0

    while batch_iter < batch_size:
        train_features = []
        train_labels = []
        batch_segments = random.sample(train_segments, 20)
        for segment in batch_segments:
            train_features.append(segment[0])
            train_labels.append(segment[1])
        sess.run(optimizer, feed_dict={x: train_features, y_: train_labels})
        line_out = "," + str(batch_iter) + "\n"
        train_outfile.write(line_out)
        line_out = ",," + str(sess.run(tf.reduce_mean(weights['h1']), feed_dict={x: train_features, y_: train_labels}))
        line_out += "," + str(sess.run(tf.reduce_mean(weights['h2']), feed_dict={x: train_features, y_: train_labels}))
        line_out += "," + str(sess.run(tf.reduce_mean(weights['h3']), feed_dict={x: train_features, y_: train_labels})) + "\n"
        train_outfile.write(line_out)
        avg_cost += sess.run(cost, feed_dict={x: train_features, y_: train_labels})/batch_size

        batch_iter += 1

    pbar.update(1)  # Increment the progress bar by one

train_outfile.close()
print "Completed training"

В поиске stackoverflow я нашелВремя обработки увеличивается и увеличивается после каждой итерации где у кого-то еще были проблемы с каждой итерацией, занимающей больше времени, чем предыдущая. Тем не менее, я считаю, что мои могут отличаться, так как они явно добавляли операции в граф, используя такие выражения:

distorted_image = tf.image.random_flip_left_right(image_tensor)

Хотя я новичок в TensorFlow, я не верю, что я делаю ту же ошибку, потому что единственные вещи в моем цикле - это вызовы sess.run ().

Буду признателен за любую оказанную помощь.

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

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