Error-onnxruntime.capi.onnxruntime_pybind11_state.Fail:

转换之后运行onnx文件就报错:

onnxruntime.capi.onnxruntime_pybind11_state.Fail:

解决:

最好把h5模型重新加载一下,保存save_model文件: 

model, _ = build_model(image_height=height, image_width=width, channels=1, num_classes=args.num_classes)
# model = tf.keras.models.load_model(model_path)
model.load_weights(model_path, skip_mismatch=False, by_name=False)
model.summary()  
saved_model_dir=os.path.join(outpath,'save_model')
tf.saved_model.save(model, saved_model_dir)

转pb:

full_model = tf.function(lambda Input: model(Input))
full_model = full_model.get_concrete_function(
        tf.TensorSpec([1,  height, width, 1], model.inputs[0].dtype))  
    
# Get frozen ConcreteFunction
frozen_func = convert_variables_to_constants_v2(full_model)
frozen_func.graph.as_graph_def()
    
    
# Save frozen graph from frozen ConcreteFunction to hard drive
tf.io.write_graph(graph_or_graph_def=frozen_func.graph,
                      logdir="./",
                      name=outpath,
                      as_text=False)

转onnx的时候使用的是save_model格式: 

os.system(
            'python -m tf2onnx.convert --saved-model "{}" --output "{}" --opset 10'.format(
                saved_model_dir,
                outpath.replace('.pb', '.onnx')))

你可能感兴趣的:(Tensorflow,OCR,Code-error,tensorflow,深度学习,python,计算机视觉)