TensorFlow: Cada iteração no treinamento para loop mais lento [duplicado]

Esta pergunta já tem uma resposta aqui:

O tempo de processamento é cada vez maior após cada iteração (TensorFlow) 1 resposta

Estou treinando um ANP perceptron multicamadas simples e padrão com três camadas ocultas no TensorFlow. Adicionei uma barra de progresso de texto para poder assistir ao progresso da iteração pelas épocas. O que estou descobrindo é que o tempo de processamento por iteração aumenta após as primeiras épocas. Aqui está um exemplo de captura de tela mostrando o aumento a cada iteração:

Nesse caso, as primeiras iterações demoraram aproximadamente 1,05s / it e em 100% estavam em 4,01s / it.

O código relevante está listado aqui:

# ------------------------- 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"

Ao pesquisar stackoverflow, encontreiO tempo de processamento é cada vez maior após cada iteração onde outra pessoa também estava tendo problemas, com cada iteração demorando mais que a última. No entanto, acredito que o meu pode ser diferente, pois eles adicionavam claramente operações ao gráfico usando declarações como estas:

distorted_image = tf.image.random_flip_left_right(image_tensor)

Embora eu seja novo no TensorFlow, não acredito que esteja cometendo o mesmo erro, porque as únicas coisas no meu loop são chamadas sess.run ().

Qualquer ajuda é muito apreciada.

questionAnswers(1)

yourAnswerToTheQuestion