X2Paddle
X2Paddle copied to clipboard
tensorflow转paddle错误,缺少算子
问题描述
tensorflow的pb格式模型转paddle时,出现这个错误,缺少一个算子的支持。
- 转换模型后用处
- [ ] 使用 Paddlenlp框架/ PaddleInference 推理预测
- 模型来源 https://github.com/ZhuiyiTechnology/pretrained-models 从这个repo下载的权重,保存成了pb格式文件。 转换代码:
from tensorflow.python.framework.graph_util import convert_variables_to_constants
from tensorflow.python.framework import graph_io
def freeze_session(session, keep_var_names=None, output_names=None, clear_devices=True):
graph = session.graph
with graph.as_default():
freeze_var_names = list(set(v.op.name for v in tf.global_variables()).difference(keep_var_names or []))
output_names = output_names or []
output_names += [v.op.name for v in tf.global_variables()]
input_graph_def = graph.as_graph_def()
if clear_devices:
for node in input_graph_def.node:
node.device = ""
frozen_graph = convert_variables_to_constants(session, input_graph_def,
output_names, freeze_var_names)
return frozen_graph
frozen_out_path = frozen_out_path+"_tf1"
#加载keras模型
K.set_learning_phase(0)
for input in network.input:
print('input is :', input.name)
print ('output is:', network.output.name)
#冻结并保存为Tensorflow模型
sess = K.get_session()
frozen_graph = freeze_session(K.get_session(), output_names=[network.output.op.name])
graph_io.write_graph(frozen_graph, frozen_out_path, frozen_graph_filename, as_text=False)
- 应用场景 用于nlp文本匹配场景
- 版本信息 PaddlePaddle => 2.2.2(gpu版) X2Paddle => 1.3.9 tensorflow= 1.14.0 onnx=1.7.0 keras=2.3.1 bert4keras=0.7.7
来源框架版本(Tensorflow) => 1.14.0
- 您的联系方式(邮箱/微信/电话) -- 邮箱:[email protected]
@xdg2016 这是什么模型?
建议转成ONNX,再ONNX2Paddle
这个是simbert的官方模型(https://github.com/ZhuiyiTechnology/simbert) 尝试了很多次无法转成paddle,就是用onnx再转paddle也是不行,模型可以转出来,无法正确运行,这个模型的输入是 input_ids:[None,None], token_type_ids:[None,None] 都是动态输入的,在转的时候不支持动态输入。