在Tensorflow中训练模型后:
我曾经saver=tf.train.Saver()保存过我训练过的模型,我得到了三种名为的文件:
并且文件名为:
与.ckpt文件的连接是什么?
我看到有人用.ckpt文件保存模型,我不知道怎么做.如何将模型保存为.pb文件?
我使用tensorflow在python中训练了一个图像分类网络.训练有素的模型保存为.pb.现在,我想测试模型,我需要在C++中完成.
我用过numpy操纵和处理数据.在训练阶段,图像作为numpy数组传递.图像作为一维数组延伸,类标签前置于此数组.
我很困惑如何在C++中运行模型时传递图像数据numpy,我无法使用.我使用numpy操作来操纵和处理数据.如果我必须在C++中执行它,我应该以什么格式传入数据.
以下是我训练和保存模型的方法
def trainModel(data):
global_step = tf.Variable(0, name='global_step', trainable=False)
X, y,keep_prob = modelInputs((741, 620, 1),4)
logits = cnnModel(X,keep_prob)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y), name="cost")
optimizer = tf.train.AdamOptimizer(.0001, name='Adam').minimize(cost)
prediction = tf.argmax(logits, 1, name="prediction")
correct_pred = tf.equal(prediction, tf.argmax(y, 1), name="correct_pred")
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32), name='accuracy')
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
saver = tf.train.Saver()
batch_size = 30
for e in range(11):
batch_x, batch_y = data.next_batch(batch_size)
batch_y = batch_y.astype('int32')
x = np.reshape(batch_x, [batch_size, 741, …Run Code Online (Sandbox Code Playgroud) 我有Tensorflow与python api并获得这些检查点模型文件:
model.ckpt-17763.data-00000-of-00001
model.ckpt-17763.index
model.ckpt-17763.meta
Run Code Online (Sandbox Code Playgroud)
但是在集成到生产环境中时,我想要一个C/C++共享库(.so文件).所以我需要使用C++代码加载这些模型文件和推理并编译到共享库.这样做有一些教程或样本吗?
c++ deep-learning conv-neural-network tensorflow tensorflow-serving
我训练模型并使用以下方法保存:
saver = tf.train.Saver()
saver.save(session, './my_model_name')
Run Code Online (Sandbox Code Playgroud)
除了检查点文件,它只包含指向模型最新检查点的指针,这将在当前路径中创建以下3个文件:
我想知道每个文件包含什么.
我想在C++中加载这个模型并运行推理.该label_image示例加载从单一的模型.bp使用文件ReadBinaryProto().我想知道如何从这3个文件中加载它.以下是什么C++等价物?
new_saver = tf.train.import_meta_graph('./my_model_name.meta')
new_saver.restore(session, './my_model_name')
Run Code Online (Sandbox Code Playgroud) c++ artificial-intelligence deep-learning tensorflow tensorflow-serving