赞
踩
这两天使用TensorFlow训练一个多个损失函数的网络模型,自己搭建网络,调参训练,由于网络是一个两阶段的网络,具有三个损失函数,其中两个损失函数监督第一个阶段,一个损失函数家督第二个阶段,而且损失函数监督的并不全是最后一层,还有中间层,这需要调整我的训练方式。
第一步和最后一步都好说,假设定义好了三个loss函数分别为self.loss1,self.loss2,self.loss3和加入正则化后的整个网络的损失函数self.loss,那么第一步和第三步的实现实例为
optimizer = tf.train.AdamOptimizer(self.lr, beta=0.9, beta=0.999, name='AdamOptimizer')
update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_denpendencies(update_ops):
self.train_op = optimizer.minimize(self.loss)
这是我们常用的整个网络的参数都进行训练的方式,当需要固定低层的参数时,例如我有一个24层的网络,我需要固定1-14层,只更新15-24层,也就是上面的第二个步骤,则代码如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。