MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.
Destination framework with version (like CNTK 2.3 with GPU): PyTorch 1.6.0 GPU
I would like to convert an existing (trained) model from keras/tf to pytorch.
However, the model uses two inputs (an image and an additional boolean value) and, hence is currently implemented as keras.engine.functional.Functional. Apparently, MMdnn can not handle it:
$ mmconvert -sf keras -iw output/model.h5 -df pytorch -om output/model.pth
$ # and also with
$ mmtoir -f keras -d output/dbam -n data/models/tf/dbam.json
> Traceback (most recent call last):
File "/usr/local/bin/mmtoir", line 8, in <module>
sys.exit(_main())
File "/usr/local/lib/python3.7/dist-packages/mmdnn/conversion/_script/convertToIR.py", line 197, in _main
ret = _convert(args)
File "/usr/local/lib/python3.7/dist-packages/mmdnn/conversion/_script/convertToIR.py", line 46, in _convert
parser = Keras2Parser(model)
File "/usr/local/lib/python3.7/dist-packages/mmdnn/conversion/keras/keras2_parser.py", line 135, in __init__
self.keras_graph = Keras2Graph(model)
File "/usr/local/lib/python3.7/dist-packages/mmdnn/conversion/keras/keras2_graph.py", line 37, in __init__
raise TypeError("Keras layer of type %s is not supported." % type(model))
TypeError: Keras layer of type <class 'keras.engine.functional.Functional'> is not supported.
Is there any alternative way for trying the conversion that I missed?
Else is there any workaround to this?
Platform (like ubuntu 16.04/win10):
Ubuntu 18.04 (Google Colab)
Python version:
3.7.10
Source framework with version (like Tensorflow 1.4.1 with GPU):
Keras 2.5 with Tensorflow 2.0 GPU Backend
Pre-trained model path (webpath or webdisk path): relevant model config JSON
Destination framework with version (like CNTK 2.3 with GPU):
PyTorch 1.6.0 GPU
I would like to convert an existing (trained) model from keras/tf to pytorch. However, the model uses two inputs (an image and an additional boolean value) and, hence is currently implemented as
keras.engine.functional.Functional
. Apparently, MMdnn can not handle it:Is there any alternative way for trying the conversion that I missed? Else is there any workaround to this?
Here is the code to generate the keras model:
Thanks for your help.