tensorflow冻结层的方法

最近在搞faster-rcnn的改动,网上看到很多人在做的一些改进,其中就包括冻结Bn等等方式,于是自己也就查了一下tensorflow里面冻结层的方法,现在总结如下:

1、比如使用一个VGG的前面提取特征的部分,而微调其全连层,或者将其全连层更换为使用convolution来完成,可以使用TensorFlow的stop_gradient函数,将模型的一部分进行冻结。

2、采用get_collection:

  1. #定义优化算子
  2. optimizer = tf.train.AdamOptimizer( 1e-3)
  3. #选择待优化的参数
  4. output_vars = tf.get_collection(tf.GraphKyes.TRAINABLE_VARIABLES, scope= 'outpt')
  5. train_step = optimizer.minimize(loss_score,var_list = output_vars)
把需要更新梯度的层放在get_collection这个函数里面,不需要更新的不放进去。

猜你喜欢

转载自blog.csdn.net/gbyy42299/article/details/80970513
今日推荐