研究人工智能很久了,一直没写个文章,今天将之前碰到的问题,分享给大家。
如何将tensorflow的ckpt模型转化为pb模型
网上找了很多中方法,都不行。。。希望有缘人能看到,并解决该问题。
1、在训练的时候,找到你输出的接口,如标红,并将它打印出来。
# 加上DropOut,防止过拟合
dropout_fc = tf.layers.dropout(fc, dropout_placeholdr, name='dropout_fc')
# 未激活的输出层
logits = tf.layers.dense(dropout_fc, num_classes, name='logits_output')
# predicted_labels = tf.arg_max(tf.nn.softmax(logits), 1)
predicted_labels = tf.arg_max(logits, 1)
print('test -----------')
print(predicted_labels)
输入方案:
output_node_names = 'scored/ArgMaxd' intput_graph_def = tf.get_default_graph().as_graph_def() constant_graph = tf.graph_util.convert_variables_to_constants(sess, intput_graph_def, output_node_names.split(",")) with tf.gfile.FastGFile(pb_path, mode='wb') as f: f.write(constant_graph.SerializeToString())
然后在引用pd 中,使用该方法
predicted_labels = graph.get_tensor_by_name("score/ArgMax:0")