【问题标题】:How to import deep learning models from MATLAB to PyTorch?如何将深度学习模型从 MATLAB 导入 PyTorch?
【发布时间】:2021-02-16 11:45:56
【问题描述】:

我正在尝试将经过 DNN 训练的模型从 MATLAB 导入 PyTorch。

我找到了相反情况的解决方案(从 PyTorch 到 MATLAB),但没有关于如何将经过训练的模型从 MATLAB 导入到 PyTorch 的解决方案。

有什么想法吗?

【问题讨论】:

    标签: matlab deep-learning pytorch


    【解决方案1】:

    可以先export your model to ONNX format,再使用ONNX加载;先决条件是:

    pip install onnx onnxruntime
    

    那么,

    onnx.load('model.onnx')
    # Check that the IR is well formed
    onnx.checker.check_model(model)
    

    到目前为止,您还没有 PyTorch 模型。这可以通过多种方式完成,因为它是not natively supported。


    A workaround(通过仅加载模型参数)

    import onnx
    onnx_model = onnx.load('model.onnx')
    
    graph = onnx_model.graph
    initalizers = dict()
    for init in graph.initializer:
        initalizers[init.name] = numpy_helper.to_array(init)
    
    for name, p in model.named_parameters():
        p.data = (torch.from_numpy(initalizers[name])).data
    

    使用onnx2pytorch

    import onnx
    
    from onnx2pytorch import ConvertModel
    
    onnx_model = onnx.load('model.onnx')
    pytorch_model = ConvertModel(onnx_model)
    

    注意:耗时

    使用onnx2keras,然后使用MMdnn 将Keras 转换为PyTorch (Examples)

    【讨论】:

    • 我要试试,非常感谢您的解决方案!
    • 使用onnx2pytorch转换模型后,请问如何使用模型进行预测?
    • 就像使用 PyTorch 模型进行预测一样。不确定我是否理解您的问题? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2019-08-12
    • 2018-10-27
    • 1970-01-01
    • 2018-08-31
    • 2018-02-03
    相关资源
    最近更新 更多