东阳厂家高端网站设计,网站建设多少钱实惠湘潭磐石网络,网络营销课程心得体会,软件培训班分享人工智能技术干货#xff0c;专注深度学习与计算机视觉领域#xff01;相较于Tensorflow#xff0c;Pytorch一开始就是以动态图构建神经网络图的#xff0c;其获取模型参数的方法也比较容易#xff0c;既可以根据其内建接口自己写代码获取模型参数情况#xff0c;也可…分享人工智能技术干货专注深度学习与计算机视觉领域相较于TensorflowPytorch一开始就是以动态图构建神经网络图的其获取模型参数的方法也比较容易既可以根据其内建接口自己写代码获取模型参数情况也可以借助第三方库来获取模型参数情况下面就让我们一起来了解Pytorch获取模型参数情况的这两种方法Pytorch依据其内建接口自己写代码获取模型参数情况我们主要是借助该框架提供的模型parameters()接口并获取对应参数的size来实现的对于该参数是否属于可训练参数那么我们可以依据Pytorch提供的requires_grad标志位来进行判断具体方法如下代码所示# 定义总参数量、可训练参数量及非可训练参数量变量
Total_params 0
Trainable_params 0
NonTrainable_params 0# 遍历model.parameters()返回的全局参数列表
for param in model.parameters():mulValue np.prod(param.size()) # 使用numpy prod接口计算参数数组所有元素之积Total_params mulValue # 总参数量if param.requires_grad:Trainable_params mulValue # 可训练参数量else:NonTrainable_params mulValue # 非可训练参数量print(fTotal params: {Total_params})
print(fTrainable params: {Trainable_params})
print(fNon-trainable params: {NonTrainable_params})如无特殊设定一般来说因为我们是直接获取的model网络参数因此很少有不可训练参数往往NonTrainable_params输出结果是0。这里的第三方库是指torchsummary欲要使用该库首先我们得安装它命令如下pip install torchsummary然后引入该库的summary方法from torchsummary import summary最后直接调用一条命令即可获取到Pytorch模型参数情况summary(model, input_size(ch, h, w), batch_size-1)这里的ch是指输入张量的channel数量h表示输入张量的高w表示输入张量的宽。我们从以上代码可以看到借助第三方库torchsummary来获取Pytorch的模型参数情况非常之简便只需确认好输入图像shape即可那么torchsummary的输出是如何的呢上图是应用torchsummary获得输出结果的一个示例这与Tensorflow V2.x及其之后的版本的模型summary()输出是差不多的输出信息里也是有各个类别的参数量情况、每层网络的参数量、额外的层名称及其输出shape大小此外torchsummary库还为我们计算了输入大小、模型参数大小及前向/反向传播参数量大小可谓信息非常细致这极大地方便了我们查看Pytorch模型的构造情况。除了上述两种获取Pytorch模型参数情况的方法我们当然也可以直接使用model.state_dict()接口获取Pytorch网络参数但是此种方法打印出来的信息结构非常混乱也没有为我们进行有效的信息整理因此很不建议该方法。