slim加载预训练模型并输出模型参数

好久都没有写文章了,一直忙着看论文,写论文,参加比赛升级打怪。今天抽出点时间,写点基础的东西,今天分享的是利用temsorflow的slim模块来加载预训练好的模型并输出其参数名称。

首先模型的下载地址为:https://github.com/tensorflow/models/tree/master/research/slim

大家可以从上面下载我们需要的模型,而我们平时保存的模型中一共有四个文件,其中.meta文件保存的是我们的模型图结构;.ckpt保存的是我们的模型中变量的取值;而.index文件保存的是模型中变量的名字;.pb文件有两种情况,一个是只保存了计算图结构,不包含变量值,可以通过tf.train.write_graph() 方法生成,第二种情况是不仅包含计算图结构,还包含了训练产生的变量值。从上面的地址下载的模型有时候只有.ckpt文件,所以需要我们自己写图结构,或者从上面的py文件中找到所需要的文件即可,如下图所示。


模型图结构文件

我们以vgg为例,vgg只有ckpt文件,因此,我下载了vgg.py文件和vgg16的预训练模型,然后将其直接加载即可,需要注意的是,这里的vgg16将最后的全连接层转化为了卷积层,适合我作为FCN的backbone来使用,要是需要做分类的话,需要大家重新调整最后几层的网络结构,来适应不同的任务。加载模型的部分程序如下图所示。


模型加载

通过运行输出的结果可以看出,网络已经加载完毕了。最后我们想要看一下网络参数的名字和数值的话,直接利用tensorflow中的pywrap_tensorflow函数即可,程序如下图所示。


读取模型参数名称和数值

以上就是我今天的分享,这几天我抽时间做一个FCN模型的复现与大家分享。希望大家多多关注。以上所有的代码已上传到GitHub

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容