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 ().
Буду признателен за любую оказанную помощь.