59、resnet50 权值和参数保存

上一节我们下载好了模型,这一节开始将模型中存在权值的层的权值参数抽取出来,以文件(txt后缀的文本文件)的形式保存在本地电脑上,方便后续推理使用。

按照之前介绍算法时所说的,在 resnet50 中,存在权值的层有卷积层(权值为卷积核)、bn层(权值为gamma 和 bias),全连接层(权值为矩阵)

同时,我们把所有卷积层中的参数(padding,stride,kernel_size等)同样保存下来,也是为了方便在推理到这一层时直接使用。当然参数也可以不用保存起来,因为模型结构是确定的,推理到某一层的时候参数也是确定的,可以提前写好(这一点,在最后性能优化codegen模块时会看到)。

我们暂时还是将卷积层的参数以文件的形式保存在本地电脑中。

如何保存模型的权值

我们采用最朴素的方法来保存权值。

  1. 所有的权值和卷积的参数都保存在仓库 resnet50_weight 目录下。

  2. 通过 np.savetxt 接口,将需要保存的数据保存在 txt 文本中。

卷积参数的保存

需要保存的包括卷积核尺寸、stride参数、padding参数、输入输出通道数,这些参数通过每层卷积的属性获取到。

保存卷积参数的核心函数在下面,可以看函数前的注释说明,链接:

你可能感兴趣的:(CV视觉算法入门与调优,深度学习,人工智能)