我正在尝试从MATLAB导入一个经过DNN训练的模型到PyTorch。
我已经找到了相反情况的解决方案(从PyTorch到MATLAB),但没有提出如何从MATLAB导入经过训练的模型到PyTorch的解决方案。
有什么想法吗?
发布于 2021-02-16 12:20:05
您可以首先使用将模型导出为ONNX格式,然后使用ONNX加载它;先决条件是:
pip install onnx onnxruntime然后,
onnx.load('model.onnx')
# Check that the IR is well formed
onnx.checker.check_model(model)在此之前,您仍然没有PyTorch模型。这可以通过各种方法来完成,因为它是非本地支持。
解决办法 (只加载模型参数)
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])).dataimport onnx
from onnx2pytorch import ConvertModel
onnx_model = onnx.load('model.onnx')
pytorch_model = ConvertModel(onnx_model)注:时间消耗
使用onnx2keras,然后使用MMdnn将Keras转换为PyTorch (例子)
https://stackoverflow.com/questions/66223768
复制相似问题