在训练期间,Tensorflow会随机减慢/挂起

时间:2016-10-22 21:01:02

标签: tensorflow

Notice the 22.436 secs in the middle there (注意中间最大22.5秒)

在这种情况下需要22.5秒,在其他情况下需要200秒或挂起(它可能在将来某个时候解锁)。

它通常解冻的事实让我觉得它不是僵局。但我不知道它是什么。但是,strace显示冻结发生在futex调用期间,这是可疑的。

我没有做任何特别复杂的事情;我有一个FCN,我只测量运行session.run()的时间。在GPU上运行,但我尝试在CPU上运行,但它仍然会发生。

以下是时间测量代码供参考:

            feed_dict = {
                self.prediction_network.data_placeholder: batch_data,
                self.prediction_network.groundtruth_placeholder: batch_results,
                self.prediction_network.learningrate_placeholder: learning_rate,
                self.prediction_network.dropout_placeholder: FLAGS.dropout_keep_prob
            }

            _, global_step, loss_value = session.run([self.prediction_network.train_op, self.prediction_network.global_step_op, self.prediction_network.loss],
                                    feed_dict=feed_dict)

            durations.append(time.time() - start_time)

            if global_step % 200 == 0:
                avgtime = sum(durations)/float(len(durations))
                maxtime = max(durations)
                mintime = min(durations)
                print('Step %d (E%d / %d): loss = %.5f (%.3f sec avg, %.3f sec max, %.3f sec min)' % (global_step, epoch+1, FLAGS.epoch_count, loss_value, avgtime, maxtime, mintime))

我已经坚持了一段时间,我无法挺身而出,因为每当我尝试一些东西时,我必须重新运行10次,直到它起作用。有人有这个问题吗?

0 个答案:

没有答案