pytorch回転caffe

2014 ワード

目次
ツール
二pytorch 2 caffeの修正
3つの呼び出しツール、pytorchモデルをcaffeに変換
四テスト変換caffeモデル

ツール


pytorch 2 caffeの使用(少し変更)
原作者:https://github.com/longcw/pytorch2caffe
環境:pytoch 0.2.0_0, python 2.7
変更:

二pytorch 2 caffeの修正

  • ' nn.ConvTranspose2d':-->'Deconvolution',

  •       nn.ConvTranspose2d(                 in_channels=self.inplanes,                 out_channels=self.inplanes,                 kernel_size=kernel,                 stride=2,                 padding=padding,                 groups=self.inplanes,                 output_padding=output_padding,                 bias=self.deconv_with_bias)
    具体的な実装:
    elif parent_type == 'ConvNdBackward':
        # Only for UpsamplingCaffe
        if func.transposed is True and func.next_functions[1][0] is None:
            # UpsamplingBilinear2d 
        elif func.transposed is True and func.next_functions[1][0] is not None:
            # Deconvolution, w is not none
    

    2、DepthwiseConvolution
            elif parent_type == 'ConvNdBackward':
               ...
                else:
                    ...
                    if func.groups!=1:
                        layer['type'] = 'DepthwiseConvolution'

    nn.Conv2d(plane, plane,                                      kernel_size=1, stride=1, groups=plane,                                      padding=0, dilation=1, bias=False) 
    !ただし、空洞ボリュームの場合(dilation!=1)計算エラー

    3つの呼び出しツール、pytorchモデルをcaffeに変換


    フォルダ「hrnet 2 caffe」で特定のモデルを変換
    例:hrnet 2 caffe/lpn_liteseg_simple2caffe.py

    四テスト変換caffeモデル

    CUDA_VISIBLE_DEVICES=1 python tools/test_seg_pose.py --cfg experiments/lip/LightPose_res50.yaml TEST.BATCH_SIZE_PER_GPU 1