我尝试使用bazel构建tensorflow服务,但我在构建过程中遇到了一些错误
ERROR:/private/var/tmp/_bazel_Kakadu/3f0c35881c95d2c43f04614911c03a57/external/local_config_cc/BUILD:49:5: in apple_cc_toolchain rule @local_config_cc//:cc-compiler-darwin_x86_64: Xcode version must be specified to use an Apple CROSSTOOL.
ERROR: Analysis of target '//tensorflow_serving/sources/storage_path:file_system_storage_path_source_proto' failed; build aborted.
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用了bazel clean,bazel clean --expunge但它没有帮助,仍然Bazel没有看到我的xcode(我想)但它已经完全安装.我甚至重新安装它以确保一切正常,但错误并没有消失
我的Bazel版本是
Build label: 0.5.2-homebrew
Build target: bazel-out/darwin_x86_64-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Jul 13 12:29:40 2017 (1499948980)
Build timestamp: 1499948980
Build timestamp as int: 1499948980
KakaduDevs-Mac-mini:serving Kakadu$
Run Code Online (Sandbox Code Playgroud)
操作系统是MacOS Sierra版本10.12.5
如何在bazel中指定Xcode版本以避免此错误?似乎错误是常见的,但我还没有找到如何制作bazel.PS我正在尝试安装tensorflow-服务如何解释这里的方式. https://tensorflow.github.io/serving/setup
通常,要使用TF图,必须将原始数据转换为数值.我将此过程称为预处理步骤.例如,如果原始数据是一个句子,那么一种方法是将句子标记化并将每个单词映射到唯一的数字.此预处理为每个句子创建一个数字序列,这将是模型的输入.
我们还需要对模型的输出进行后处理以解释它.例如,将模型生成的数字序列转换为单词,然后构建句子.
TF Serving是Google最近推出的一项新技术,用于服务TF模型.我的问题是:
当使用TensorFlow服务提供TF模型时,应该在哪里执行预处理和后处理?
我应该封装前处理和后处理步骤,在我的TF图(例如,使用py_fun或map_fn),或有其它TensorFlow技术,我不知道的.
是否有通过RESTful API部署Tensorflow模型的示例代码?我看到了命令行程序和移动应用程序的示例.是否有一个框架,人们只需加载模型并通过Web框架(如Flask)公开预测方法来获取输入(比如通过JSON)并返回响应?通过框架,我的意思是扩展大量的预测请求.当然,由于模型是不可变的,我们可以启动预测服务器的多个实例并将其置于负载均衡器(如HAProxy)之后.我的问题是,人们是否正在使用某种框架或从头开始这样做,或者,这可能已经在Tensorflow中提供,我没有注意到它.
我想保存模型,然后再利用它进行分类我的图片,但遗憾的是我在恢复,我已经保存的模型得到错误.
创建模型的代码:
# Deep Learning
# =============
#
# Assignment 4
# ------------
# In[25]:
# These are all the modules we'll be using later. Make sure you can import them
# before proceeding further.
from __future__ import print_function
import numpy as np
import tensorflow as tf
from six.moves import cPickle as pickle
from six.moves import range
# In[37]:
pickle_file = 'notMNIST.pickle'
with open(pickle_file, 'rb') as f:
save = pickle.load(f)
train_dataset = save['train_dataset']
train_labels = save['train_labels']
valid_dataset = save['valid_dataset'] …Run Code Online (Sandbox Code Playgroud) 我想部署一个简单的TensorFlow模型,并在像Flask这样的REST服务中运行它.到目前为止还没有找到github或这里的好例子.
我不准备像其他帖子中所建议的那样使用TF服务,这对谷歌来说是完美的解决方案,但是对于我的任务而言,gRPC,bazel,C++编码,protobuf ......
我正在按照本教程tensorflow serving使用我的对象检测模型.我正在使用tensorflow对象检测来生成模型.我创建了使用冷冻模型这个出口(生成的冷冻模型作品使用python脚本).
冻结的图形目录具有以下内容(目录上没有任何内容variables)
变量/
saved_model.pb
现在,当我尝试使用以下命令提供服务时,
tensorflow_model_server --port=9000 --model_name=ssd --model_base_path=/serving/ssd_frozen/
Run Code Online (Sandbox Code Playgroud)
它总是告诉我
...
tensorflow_serving/model_servers/server_core.cc:421](重新)添加模型:ssd 2017-08-07 10:22:43.892834:W tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:262]在基础下找不到任何版本的servable ssd path/serving/ssd_frozen/2017-08-07 10:22:44.892901:W tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:262]在基本路径/ serving/ssd_frozen /下找不到servable ssd的版本
...
object-detection deep-learning tensorflow tensorflow-serving
我试图按照官方网站上的说明安装它,导致tensorflow导致导入错误:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我运行代码cat /usr/local/cuda/version.txt,显示我的cuda版本是8.0.61.
似乎tensorflow正在寻找cuda 9.0.我无法升级cuda,因为我正在使用共享的gpu-server而且我没有root权限.
有没有办法让tensorflow与cuda 8.0一起工作?或任何其他方式?
谢谢!!
我使用tf.estimator .method export_savedmodel保存模型,如下所示:
export_dir="exportModel/"
feature_spec = tf.feature_column.make_parse_example_spec(feature_columns)
input_receiver_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)
classifier.export_savedmodel(export_dir, input_receiver_fn, as_text=False, checkpoint_path="Model/model.ckpt-400")
Run Code Online (Sandbox Code Playgroud)
如何导入此保存的模型并用于预测?
我如何使用多个tensorflow模型?我用的是docker容器.
model_config_list: {
config: {
name: "model1",
base_path: "/tmp/model",
model_platform: "tensorflow"
},
config: {
name: "model2",
base_path: "/tmp/model2",
model_platform: "tensorflow"
}
}
Run Code Online (Sandbox Code Playgroud) 从谷歌教程我们知道如何在TensorFlow中训练模型.但是保存训练模型的最佳方法是什么,然后在生产服务器中使用基本的最小python api进行预测.
我的问题基本上是针对TensorFlow保存模型并在实时服务器上提供预测而不影响速度和内存问题的最佳实践.由于API服务器将永远在后台运行.
一小段python代码将不胜感激.