在Tensorflow中微调深度神经网络



我想在Tensorflow中对预先训练的深度神经网络进行部分微调(如中所示,加载所有层的权重,但只更新更高级别层的权重)。

Tensorflow中是否有任何方法允许选择应该更改的变量和应该保持不变的变量?

提前谢谢!

创建优化器(例如tf.train.AdagradOptimizer)来训练模型时,可以将显式var_list=[...]参数传递给Optimizer.minimize()方法。(如果不指定此列表,则默认为包含tf.trainable_variables()中的所有变量。)

例如,根据您的模型,您可以使用变量的名称来定义要优化的变量列表:

# Assuming all variables to be fine-tuned have a name that starts with
# "layer17/".
opt_vars = [v for v in tf.trainable_variables() if v.name.startswith("layer17/")]
train_op = optimizer.minimize(loss, var_list=opt_vars)

相关内容

  • 没有找到相关文章

最新更新