如何使用tf.data API修复Tensorflow中的``程序挂起''?

时间:2019-01-11 07:02:00

标签: tensorflow

我正在使用tensorflow-gpu 1.8进行图像重建项目,并且通过tf.data API读取数据集。当我在损失函数中添加正则化时,程序挂起了。

起初,损失函数是均方误差,代码运行快。添加低秩正则化后,程序运行缓慢,我希望它运行1000个时期,但是在一两个时期之后,该程序均未报告错误也不会执行。我按照以下步骤进行:

with tf.name_scope('Data_process'):
    trnData = tf.data.Dataset.from_tensor_slices((input_feature, input_label,input_mask))
    trnData=trnData.cache()
    trnData=trnData.repeat(count=FLAGS.num_epoch)
    trnData=trnData.shuffle(buffer_size=nTrn//4)
    trnData=trnData.batch(batch_size=FLAGS.batch_size)
    trnData=trnData.prefetch(2)
    iterator=trnData.make_initializable_iterator()
    feature_t,label_t,mask_t=iterator.get_next('getnext')

recons= mm.makeModel( feature_t,mask_t,True,FLAGS.use_BN,numlayers,K,CG=FLAGS.use_CG,lamda_w=FLAGS.lamda_w)


# using low_rank priors
with tf.variable_scope('Low_rank'):
    Beta=FLAGS.Beta
    r_x = mm.tensor_rx(recons)  # computing no of zero singular values
    rank_approx = FLAGS.image_size - r_x  # computing approximate rank
    rank = tf.reduce_mean(rank_approx)
    low_rank=Beta*rank
    tf.add_to_collection('losses', low_rank)

控制台输出为:

testing model saved:saveModels/11Jan_11_03/modelTst
training started at 11Jan_11:07AM
parameters are: Epoch: 1000 BS: 2 nSteps: 900000 nSamples: 1800
Model meta graph saved in ::saveModels/11Jan_11_03/model
epoch: 1 55.2247 28.3394 0.733484 11:17
epoch: 2 31.3252 30.662 0.828454 11:26

然后该程序挂了很多小时,我不知道该怎么办,有人可以帮我吗?我的英语不好,请不要介意。

0 个答案:

没有答案