我正在使用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
然后该程序挂了很多小时,我不知道该怎么办,有人可以帮我吗?我的英语不好,请不要介意。