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
変更:
' 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)
具体的な実装:
2、DepthwiseConvolution
nn.Conv2d(plane, plane, kernel_size=1, stride=1, groups=plane, padding=0, dilation=1, bias=False)
!ただし、空洞ボリュームの場合(dilation!=1)計算エラー
フォルダ「hrnet 2 caffe」で特定のモデルを変換
例:hrnet 2 caffe/lpn_liteseg_simple2caffe.py
ツール
二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( 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