tensorflow finetune预训练模型方法

本文介绍了在TensorFlow中如何对预训练模型进行微调,特别是在需要修改网络层结构或权重尺寸时。关键步骤包括使用slim库的slim.get_variables_to_restore函数,注意该函数在TensorFlow 1.0后已被移除,需要从特定源下载。在恢复模型时,要指定checkpoint文件所在的路径而非文件名。这是一个常见陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

训练好一个网络后,欲修改某个网络层的权值size或者结构,重新初始化该网络层,保留其他网络层参数,继续训练。

 

方法:

此处需要用到slim包中  slim.get_variables_to_restore  函数,由于slim包属于models模块,已在tensorflow1.0后被取消。因此需要重新下载:下载路径:https://github.com/tensorflow/models

步骤:

1.下载slim:

cd ../models/research/slim
git clone https://github.com/tensorflow/models.git

2.引用slim:

sys.path.append("./models/research/slim")
import tensorflow.contrib.slim as slim

3.restore网络模型:

ckpt = tf.train.get_checkpoint_state(CHECK_POINT_PATH) #判断模型是否存在。
if ckpt and ckpt.model_checkpoint_path:
				exclude = ['input', 'layer_1'] #忽略模型中这两个层
				variables_to_restore = slim.get_variables_to_restore(exclude=exclude)
				all_parameters_saver = tf.train.Saver(variables_to_restore)
				all_parameters_saver.restore(sess, ckpt_path)

其中,CHECK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值