imagenet-vgg-verydeep-19参数解析

最近学习风格迁移用到vgg19,这里简要总结要迁移学习vgg的模型结构
下载链接http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat

参数结构

import scipy.io
import scipy.misc
path = "/Users/enjlife/deep-learning-model/imagenet-vgg-verydeep-19.mat"
vgg = scipy.io.loadmat(path)
vgg.keys()

查看vgg字典,发现共有6个key
dict_keys(['__header__', '__version__', '__globals__', 'layers', 'classes', 'normalization'])
这里我们关注layers key,里面是我们需要的参数
vgg['layers'].shape获取shape结果为(1, 43),正好与我们的模型层数相符合。
imagenet-vgg-verydeep-19参数解析_第1张图片
下面取第一层layer查看vgg['layers'][0][0].shape,结果显示是一个二维(1, 1)数组。
查看其元素内容发现vgg['layers'][0][0]包含参数部分和说明部分dtype=[('weights', 'O'), ('pad', 'O'), ('type', 'O'), ('name', 'O'), ('stride', 'O')],上述为说明部分,参数太长这里没有贴。
vgg['layers'][0][0][0][0][0]最后一个零选取的是W和b的参数。
vgg['layers'][0][0][0][0][1]最后一个1选组的是pad填充的参数。依次可以取出layer的类型、名字、步长。
这里还要注意,取出的W和b的矩阵依然是一个二维矩阵vgg['layers'][0][0][0][0][0].shape,结果为(1,2),然后我们通过vgg['layers'][0][0][0][0][0][0][0]vgg['layers'][0][0][0][0][0][0][1]取到W和b的值。

引用一张图片来总结下结果
在这里插入图片描述
imagenet-vgg-verydeep-19参数结构解析

你可能感兴趣的:(深度学习,vgg19)