How to transfer pb model file to h5 file?

I use these code to generate a transformer pb file.

import torch
import torch.nn as nn
src = torch.rand((10,32,10))
class Former(nn.Module):
    def __init__(self):
        super(Former, self).__init__()
        self.linear1 = nn.Linear(10,512)
        self.linear2 = nn.Linear(10,512)
        self.transformer = nn.Transformer()
    def forward(self,input):
        input1 = self.linear1(input)
        input2 = self.linear2(input)
        output = self.transformer(input1,input2)
        
        return output
src = torch.rand(1,1,10)
model = Former()
torch.onnx.export(model,src,"linear.onnx",verbose = True,input_names=["input"], opset_version= 11)
import onnx

from onnx_tf.backend import prepare

onnx_model = onnx.load("./transformer.onnx")  # load onnx model
tf_rep = prepare(onnx_model)  # prepare tf representation
tf_rep.export_graph("./transformer")  # export the model

After this I want to convert the model to h5 model so I can use profile to cout its FLOPs.


from onnx2keras import onnx_to_keras
import keras
import onnx

onnx_model = onnx.load('linear.onnx')
k_model = onnx_to_keras(onnx_model, ['input'])

keras.models.save_model(k_model,'./kerasModel.h5',overwrite=True,include_optimizer=True)

But the trouble is

  File "/home/kh/anaconda3/envs/3.8/lib/python3.8/site-packages/tensorflow/python/framework/constant_op.py", line 288, in _constant_impl
    tensor_util.make_tensor_proto(
  File "/home/kh/anaconda3/envs/3.8/lib/python3.8/site-packages/tensorflow/python/framework/tensor_util.py", line 564, in make_tensor_proto
    append_fn(tensor_proto, proto_values)
  File "tensorflow/python/framework/fast_tensor_util.pyx", line 127, in tensorflow.python.framework.fast_tensor_util.AppendObjectArrayToTensorProto
  File "/home/kh/anaconda3/envs/3.8/lib/python3.8/site-packages/tensorflow/python/util/compat.py", line 86, in as_bytes
    raise TypeError('Expected binary or unicode string, got %r' %
TypeError: Expected binary or unicode string, got 1536

Hi @Maxwell_Albert , Thank you for your patience, and apologies for the late reply!
Kindly refer to this issue to convert the pb model to h5 and let us know if the problem continues? Thank you.

1 Like