【发布时间】:2021-02-16 11:45:56
【问题描述】:
我正在尝试将经过 DNN 训练的模型从 MATLAB 导入 PyTorch。
我找到了相反情况的解决方案(从 PyTorch 到 MATLAB),但没有关于如何将经过训练的模型从 MATLAB 导入到 PyTorch 的解决方案。
有什么想法吗?
【问题讨论】:
标签: matlab deep-learning pytorch
我正在尝试将经过 DNN 训练的模型从 MATLAB 导入 PyTorch。
我找到了相反情况的解决方案(从 PyTorch 到 MATLAB),但没有关于如何将经过训练的模型从 MATLAB 导入到 PyTorch 的解决方案。
有什么想法吗?
【问题讨论】:
标签: matlab deep-learning pytorch
可以先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
import onnx
from onnx2pytorch import ConvertModel
onnx_model = onnx.load('model.onnx')
pytorch_model = ConvertModel(onnx_model)
注意:耗时
使用onnx2keras,然后使用MMdnn 将Keras 转换为PyTorch (Examples)
【讨论】: