如何将keras预训练模型从NCHW转换为NHWC格式

时间:2020-09-26 17:38:35

标签: python keras pytorch

2个问题中的相同问题,1个使用Keras,1个使用PyTorch-

第一个问题

我使用预先训练的PyTorch模型(N C HW格式),通过ONNX将其转换为Keras。但是我要使用的加速平台仅支持使用channels_last(NHW C )格式的Keras。有没有一种方法可以轻松地将keras模型转换为channels_last格式?

  • 我尝试使用ONNX(onnx2keras软件包中的change_ordering参数)-它支持某些模型中使用的操作,例如切片
  • 插入置换层也不是解决方案,因为我需要NHWC格式的整个模型。

如果没有简单的实现方法,我相信-我需要以正确的格式在Keras中手动定义模型结构,并手动移植权重。如果是这种情况,请问一种简便的方法来从权重(.h5文件)重新创建/定义模型吗?

第二个问题

除此之外,我还认为将PyTorch模型本身转换为NHWC是可能的-但我对此框架知之甚少。我已经通过从PyTorch的{​​{1}}方法(如-

state_dict()

但是无法使用置换字典重新填充模型- if('conv' in str(key)): params[key] = value.permute(0,2,3,1) 给出-

model.load_state_dict(Updated_params)

要解决此问题,如何在PyTorch中以NHWC格式在新模型中定义图层。

0 个答案:

没有答案
相关问题