GVKun编程网logo

TensorFlow:如何从SavedModel进行预测?(tensorflow预测数据)

5

在这篇文章中,我们将为您详细介绍TensorFlow:如何从SavedModel进行预测?的内容,并且讨论关于tensorflow预测数据的相关问题。此外,我们还会涉及一些关于135、TensorFl

在这篇文章中,我们将为您详细介绍TensorFlow:如何从SavedModel进行预测?的内容,并且讨论关于tensorflow预测数据的相关问题。此外,我们还会涉及一些关于135、TensorFlow SavedModel 工具类的使用、anaconda 安装 tensorflow 报错 No module named ''tensorflow'' 解决方法 (windows)、Anaconda3 tensorflow 安装 及 ModuleNotFoundError: No module named ''tensorflow'' 解答、c – 使用TensorFlow训练模型和C API进行预测的知识,以帮助您更全面地了解这个主题。

本文目录一览:

TensorFlow:如何从SavedModel进行预测?(tensorflow预测数据)

TensorFlow:如何从SavedModel进行预测?(tensorflow预测数据)

我已经导出了SavedModel,现在我可以将其加载回并进行预测。经过培训,具有以下功能和标签:

F1 : FLOAT32
F2 : FLOAT32
F3 : FLOAT32
L1 : FLOAT32

所以说我要输入的值得20.9,1.8,0.9到一个FLOAT32预测。我该怎么做?我已经成功地加载了模型,但是我不确定如何访问它以进行预测调用。

with tf.Session(graph=tf.Graph()) as sess:
    tf.saved_model.loader.load(
        sess,[tf.saved_model.tag_constants.SERVING],"/job/export/Servo/1503723455"
    )

    # How can I predict from here?
    # I want to do something like prediction = model.predict([20.9,0.9])

该问题不是此处发布的问题的重复。这个问题集中于在SavedModel任何模型类(不仅仅限于tf.estimator)上进行推理的最小示例,以及指定输入和输出节点名称的语法。

135、TensorFlow SavedModel 工具类的使用

135、TensorFlow SavedModel 工具类的使用

# SavedModelBuilder 类提供了保存多个MetaGraphDef的功能
# MetaGraph是一个数据流图,加上它的关联变量,资产和标签
# 一个MetaGraphDef是一个协议缓冲表示区
# 一个signature是计算图的输入和输出表示
# 如果assets需要被保存或者写入到磁盘上,当第一个MetaGraphDef被加载的时候
# asset就可以被提供
# 如果多个MetaGraphDef有相同的名字,只有第一个名字能够被持久化
# 每一个MetaGraphDef必须被打上用户标签
# 并且根据用户标签来加载和保存MetaGraphDef
# 随着变量的共享,这些标签标注了MetaGraphDef的功能,和在哪一个硬件上面运行的
import tensorflow as tf
export_dir = "tmp2/MetaGraphDir"
builder = tf.saved_model.builder.SavedModelBuilder(export_dir)
with tf.Session(graph=tf.Graph()) as sess:
    builder.add_meta_graph_and_variables(sess,
                                         ["TRAINING"],
                                         signature_def_map=foo_signatures,
                                         assets_collection=foo_assets
                                         )
# Add a sencod MetaGraphDef for inference
with tf.Session(graph=tf.Graph()) as sess:
    builder.add_meta_graph(["SERVING"])
builder.save()

 

anaconda 安装 tensorflow 报错 No module named ''tensorflow'' 解决方法 (windows)

anaconda 安装 tensorflow 报错 No module named ''tensorflow'' 解决方法 (windows)

这个错误的原因可能是,anaconda 安装的 python 版本为 3.7,现在 tensorflow 仅支持 python 3.6
 
改变 python 版本:首先在命令行创建一个名为 python36 的环境,指定的 Python 版本是 3.6。如下:
conda create --name python36 python=3.6
activate python36
python --version #查看 发现已经是3.6版本

现在在命令行里试一下:

python
import tensorflow

 

发现可以用了,但是在 jupyter notebook 里还是不行。
在命令行:
jupyter kernelspec list

 

给出的地址指向一个包含 kernel.json 的文件夹,打开这个 json 文件,发现里面指向的 python.exe 仍然是 python3.7,错误的原因找到了。
在命令行:
conda install jupyter notebook #重新安装Jupyter


完美解决。(用 deactivate 可以退出 Python36 环境)

Anaconda3 tensorflow 安装 及 ModuleNotFoundError: No module named ''tensorflow'' 解答

Anaconda3 tensorflow 安装 及 ModuleNotFoundError: No module named ''tensorflow'' 解答

Anaconda3 的安装,参考:手把手教你如何安装 Tensorflow(Windows 和 Linux 两种版本)

tensorflow 的安装,参考:深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

我选的是 CPU 下的安装,参考以上链接安装,如果出现:

①下载的 TensorFlow 对应的 Python 版本一定要和 conda create -n tensorflow python=x.x 的版本一样才行

②在 anaconda3 的包下搜索 "tensorflow",如果搜到,说明是路径没找到 tensorflow.

我的 tensorflow 路径:

需要将该路径临时加入到 sys.path 中:

进入 python 中:

import sys

sys.path  #查看 sys.path

sys.path.append("")

import tensorflow   # 没有报错

需要将该路径永久加入到 sys.path 中

下添加一个路径文件如:mypypath.pth , 必须以.pth 为后缀。

vi mypypath.pth 

然后写入:,并保存关闭。

再次进入 python 中:

import tensorflow   # 没有报错

 

参考:

ubuntu 下安装完 tensorflow 后 import 提示 no module named tensorflow 
python 添加模块搜索路径和包的导入  

 

c – 使用TensorFlow训练模型和C API进行预测

c – 使用TensorFlow训练模型和C API进行预测

我通过构建libtensorflow.so目标来构建C API.我想加载一个预先训练过的模型并对其进行推理以进行预测.我被告知我可以通过包含’c_api.h’头文件(以及将该文件和’libtensorflow.so’复制到适当的位置)来做到这一点,但是,我没有运气在网上找到任何关于它的例子.我所能找到的只是使用Bazel构建系统的示例,而我想使用另一个构建系统并使用TensorFlow作为库.有人可以帮我举例说明如何导入a)元图文件; b)protobuf图形文件加上检查点文件,以进行预测?下面的 Python文件的C等价物并用g构建?

#!/usr/bin/env python

import tensorflow as tf
import numpy as np

with tf.Session() as sess:
    saver = tf.train.import_Meta_graph('./Metagraph.Meta')
    saver.restore(sess,'./checkpoint.ckpt')
    x = tf.get_collection("x")[0]
    yhat = tf.get_collection("yhat")[0]
    print sess.run(yhat,Feed_dict={x : np.array([[2,3],[4,5]])})

提前致谢!

p.s.:为了完整起见,我做了以下内容来构建文件:

#!/usr/bin/env python

import tensorflow as tf
import numpy as np

x = tf.placeholder(tf.float32,shape=[None,2],name='x')
tf.add_to_collection("x",x)
y = tf.placeholder(tf.float32,1],name='y')
w = tf.Variable(np.array([[10.0],[100.0]]),dtype=tf.float32,name='w')
b = tf.Variable(0.0,name='b')
yhat = tf.add(tf.matmul(x,w),b)
tf.add_to_collection("yhat",yhat)
mse_loss = tf.sqrt(tf.reduce_mean(tf.square(tf.sub(y,yhat))))
step_size = tf.constant(0.01)
optimizer = tf.train.GradientDescentOptimizer(step_size)
init_op = tf.initialize_all_variables()
train_op = optimizer.minimize(mse_loss)
saver = tf.train.Saver()
with tf.Session() as sess:
    sess.run(init_op)
    for i in xrange(10000):
        train_x = np.random.random([100,2]) * 10
        train_y = np.dot(train_x,np.array([[100.0],[10.0]])) + 1.0
        sess.run(train_op,Feed_dict={x : train_x,y : train_y})
    print sess.run(w)
    print sess.run(b)
    saver.save(sess,'./checkpoint.ckpt')
    saver.export_Meta_graph('./Metagraph.Meta')
    tf.train.write_graph(sess.graph_def,'./','graph')

解决方法

我使用Eclipse并将c_api.h添加到我的项目文件中,并将libtensorflow.so添加到/usr/local/bin.然后我将libtensorflow共享对象的引用添加到我的GCC C Linker上的库中,最后创建了一个简单的程序.

#include <iostream>
#include "c_api.h"

using namespace std;

int main() {
    cout << TF_Version();
    return 0;
}

然后,这允许我编译和使用Tensorflow函数,包括您想要的函数.

关于TensorFlow:如何从SavedModel进行预测?tensorflow预测数据的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于135、TensorFlow SavedModel 工具类的使用、anaconda 安装 tensorflow 报错 No module named ''tensorflow'' 解决方法 (windows)、Anaconda3 tensorflow 安装 及 ModuleNotFoundError: No module named ''tensorflow'' 解答、c – 使用TensorFlow训练模型和C API进行预测的相关知识,请在本站寻找。

本文标签: