加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在Tensorflow中微调深度神经网络

发布时间:2020-12-20 11:53:21 所属栏目:Python 来源:网络整理
导读:我想在Tensorflow中对预训练的深度神经网络进行部分微调(例如,为所有层加载权重,但只更新更高层次的权重). Tensorflow中是否有任何方法可以选择应该更改的变量和应该保持相同的变量? 先感谢您! 解决方法 在创建优化程序(例如 tf.train.AdagradOptimizer )
我想在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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读