gpt4 book ai didi

opencv - 如何保存 Tensorflow 模型(不包含任何变量)以将其移植到 OpenCV 中

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:46 28 4
gpt4 key购买 nike

我想知道保存我在 python 中训练的 tensorflow 模型的正确方法是什么,以便我可以使用 opencv 的 dnn 模块将其导入 OpenCV。这是我的 Tensorflow 图

X = tf.placeholder(tf.float32, [None,training_set.shape[1]],name = 'X')
Y = tf.placeholder(tf.float32,[None,training_labels.shape[1]], name = 'Y')

A1 = tf.contrib.layers.fully_connected(X, num_outputs = 50, activation_fn = tf.nn.relu)
A1 = tf.nn.dropout(A1, 0.8)
A2 = tf.contrib.layers.fully_connected(A1, num_outputs = 2, activation_fn = None)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = A2, labels = Y))
global_step = tf.Variable(0, trainable=False)
start_learning_rate = 0.001
learning_rate = tf.train.exponential_decay(start_learning_rate, global_step, 100, 0.1, True )
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)

如您所见,它不包含任何变量。所以我的问题是这个图应该如何保存在 Tensorflow 中,以便可以使用 cv::dnn::readNetFromTensorflow 加载它。我应该将模型保存为 .pb 还是 .pbtxt 文件。 .pb.pbtxt 是否包含图表以及权重或仅包含图表??。如何在 OpenCV 中加载图形和权重??。

最佳答案

属于OP posted link的代码发布在这里。 URL 可能会更改、代码已重命名或消失。因此,我已将代码发布到 OP 引用的位置。

I guess a first question is how to save the graph at least to load it in TensorFlow again? Because you need to find a way to restore it. There is some way to do it:

-- 保存

# Save a graph definition (once)
tf.train.write_graph(sess.graph.as_graph_def(), "", "graph.pb")

# Weights initialization
sess.run(tf.global_variables_initializer())

# Training
...

# Save a checkpoint (weights only, no graph definition)
saver = tf.train.Saver()
saver.save(sess, 'tmp.ckpt')

-- 卡住(将图定义与权重合并,移除仅训练节点)

python ~/tensorflow/tensorflow/python/tools/freeze_graph.py \
--input_graph=graph.pb \
--input_checkpoint=tmp.ckpt \
--output_graph=frozen_graph.pb \
--output_node_names="NameOfOutputNode"

只有在这些步骤之后,您才可以使用 OpenCV 加载包含图定义和权重的 frozen_graph.pb。

关于opencv - 如何保存 Tensorflow 模型(不包含任何变量)以将其移植到 OpenCV 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47828095/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com