MMDNN

Pytorch To Caffe

  1. mmdnn目前只支持pytorch0.4.0
  2. 网络前向尽量不要使用中间变量(下面是打印的node)
    在这里插入图片描述
  3. 支持的层:
    layer_map = {
    'onnx::Conv': 'Conv',
    'onnx::Flatten': 'Flatten',
    'onnx::Gemm': 'FullyConnected',
    'onnx::MaxPool': 'Maxpool',
    'onnx::AveragePool': 'Avgpool',
    'onnx::Dropout': 'Dropout',
    'onnx::BatchNormalization': 'BatchNormalization',
    'onnx::Add': 'Add',
    'onnx::Concat': 'Concat',
    'onnx::Relu': 'Relu',
    'onnx::Tanh': 'Tanh',
    'onnx::Sigmoid': 'Sigmoid',
    'onnx::Mul': 'Mul'
    
    
    # TODO
    # 'max_pool2d': convert_maxpool,
    # 'onnx::Mul': convert_elementwise_mul,
    # 'onnx::Sub': convert_elementwise_sub,
    # 'onnx::ConvTranspose': convert_convtranspose,
    # 'onnx::LeakyRelu': convert_lrelu,
    # 'onnx::Sigmoid': convert_sigmoid,
    # 'onnx::Softmax': convert_softmax,
    # 'onnx::Selu': convert_selu,
    # 'onnx::Transpose': convert_transpose,
    # 'onnx::Reshape': convert_reshape,
    # 'onnx::MatMul': convert_matmul,
    # 'onnx::Gather': convert_gather,
    # 'onnx::ReduceSum': convert_reduce_sum,
    # 'onnx::Constant': convert_constant,
    # 'onnx::Upsample': convert_upsample,
    # 'onnx::Pad': convert_padding,
    }
    
  4. 修改pytorch_parser.py,69-78行,如下:
    # if not os.path.exists(model_file_name):
    #     print("Pytorch model file [{}] is not found.".format(model_file_name))
    #     assert False
    # # test
    
    # # cpu: https://github.com/pytorch/pytorch/issues/5286
    # try:
    #     model = torch.load(model_file_name)
    # except:
    #     model = torch.load(model_file_name, map_location='cpu')
    
    model = model_file_name
    
  5. 转IR
    size = 112
    from mmdnn.conversion.pytorch.pytorch_parser import PytorchParser
    pytorchparser = PytorchParser(net, [3, size, size])
    IR_file = 'PFLD'
    pytorchparser.run(IR_file)
    
  6. convert IR to Caffe Code
 mmtocode -f caffe -n PFLD.pb -w PFLD.npy -d caffe_converted.py -dw caffe_converted.npy
  1. get the caffe model
 mmtomodel -f caffe -in caffe_converted.py -iw caffe_converted.npy -o caffe_target

Caffe model files are saved as [caffe_target.prototxt] and [caffe_target.caffemodel], generated by [caffe_converted.py] and [caffe_converted.npy].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值