将keras(包含bert)模型转化为pb模型后,使用x2paddle再次转化时为paddle失败,另外对于用户输入Input size的几点疑问
Created by: korlankil
#该tensorflow模型是由keras模型转化而来,原模型中包含keras-bert预训练模型,在keras中模型各层结构如下图所示
#keras模型转化为pb模型时中使用了以下函数 def h5_to_pb(h5_model,output_dir,model_name,out_prefix = "output_",log_tensorboard = False): if osp.exists(output_dir) == False: os.mkdir(output_dir) out_nodes = [] for i in range(len(h5_model.outputs)): out_nodes.append(out_prefix + str(i + 1)) tf.identity(h5_model.output[i],out_prefix + str(i + 1)) sess = K.get_session() from tensorflow.python.framework import graph_util,graph_io init_graph = sess.graph.as_graph_def() main_graph = graph_util.convert_variables_to_constants(sess,init_graph,out_nodes) graph_io.write_graph(main_graph,output_dir,name = model_name,as_text = False) print('Tranform finish!')
问题2: 对于使用x2paddle 时 --define_input_shape参数的输入问题 由于原keras模型的输入shape是(batch_size,句子长度),即第二个参数是非固定,而不像图像分类此类模型的Input_size是(None,224,224,3)这样固定。请问这种情况在使用x2paddle 的--define_input_shape参数时是直接输入(None, 任意一个数字) 吗?如下图所示