当前位置: 首页 > 知识库问答 >
问题:

如何配置Tensorflow服务以服务HDFS中的模型?

乐正锦
2023-03-14

我正在尝试使用Tensorflow服务项目为HDFS的Tensorflow模型提供服务。

我正在运行tenorflow服务docker容器标签1.10.1https://hub.docker.com/r/tensorflow/serving

我可以看到tensorflow/serving repo在 https://github.com/tensorflow/serving/blob/628702e1de1fa3d679369e9546e7d74fa91154d3/tensorflow_serving/model_servers/BUILD#L341 引用Hadoop

"@org_tensorflow//tensorflow/core/platform/hadoop:hadoop_file_system"

这是对

https://github . com/tensor flow/tensor flow/blob/master/tensor flow/core/platform/Hadoop/Hadoop _ file _ system . cc

我设置了以下环境变量:

  • HADOOP_HDFS_HOME指向我的HDFS主页(在我的例子中是/etc/HADOOP)
  • MODEL_BASE_PATH设置为“hdfs://tensorflow/models“
  • MODEL_NAME设置为要加载的模型的名称

我将Hadoop home挂载到docker容器中,并可以使用docker exec验证它。

当我运行docker容器时,我在日志中得到以下内容:

tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:369] FileSystemStoragePathSource encountered a file-system access error: Could not find base path hdfs://tensorflow/models/my_model for servable my_model

我发现了Tensorflow使用HDFS进行训练的例子,但没有使用Tensorflow服务来自HDFS的模型。

Tensorflow Serving可以为来自HDFS的模型提供服务吗?如果是,您如何做到这一点?

共有1个答案

巫培
2023-03-14

在<code>model_serverscc_test@org_tensorflow//tensorflo/core/platform/hadoop:hadoop_file_system,如下所示:

cc_test(
    name = "get_model_status_impl_test",
    size = "medium",
    srcs = ["get_model_status_impl_test.cc"],
    data = [
        "//tensorflow_serving/servables/tensorflow/testdata:saved_model_half_plus_two_2_versions",
    ],
    deps = [
        ":get_model_status_impl",
        ":model_platform_types",
        ":platform_config_util",
        ":server_core",
        "//tensorflow_serving/apis:model_proto",
        "//tensorflow_serving/core:availability_preserving_policy",
        "//tensorflow_serving/core/test_util:test_main",
        "//tensorflow_serving/servables/tensorflow:saved_model_bundle_source_adapter_proto",
        "//tensorflow_serving/servables/tensorflow:session_bundle_config_proto",
        "//tensorflow_serving/servables/tensorflow:session_bundle_source_adapter_proto",
        "//tensorflow_serving/test_util",
        "@org_tensorflow//tensorflow/cc/saved_model:loader",
        "@org_tensorflow//tensorflow/cc/saved_model:signature_constants",
        "@org_tensorflow//tensorflow/contrib/session_bundle",
        "@org_tensorflow//tensorflow/core:test",
        "@org_tensorflow//tensorflow/core/platform/hadoop:hadoop_file_system",
    ],
)

我想这会解决你的问题。

参考:无法从HDFS加载模型

 类似资料:
  • 介绍常用的服务配置。 云联壹云 平台支持基于climc命令修改常用服务配置。 说明 请确保First Node节点已正确初始化climc工具,配置步骤请参考CLIMC工具 通用配置命令如下 目前支持配置的服务有keystone、glance、region2、yunionapi、common等。 命令模式 在命令行下输入climc并带额定的参数获取相应的结果。 # 查看服务的配置信息 $ climc

  • 我们的项目中使用的是Spring Cloud config server,它有多个微服务。配置服务器就绪后,我们现在将所有微服务的所有属性存储在一个中央git存储库中。每个微服务能够根据应用程序名称和配置文件提取自己的属性文件。我们试图将资源包存储在中央存储库中,并让config-server将这些资源包提供给微服务。我们的资源包包括属性文件,如messages_en.properties、mes

  • 配置代理服务器能干嘛 NEI toolkit 提供了代理服务器的功能,帮助将接口代理到NEI官网或者特定的服务器上 将接口代理到NEI官网 开启该功能只需将server.config.js中的online设为true, 那么对Mock Server的所有请求都将会代理到NEI官网上,该模式也被称为在线模式。 启用在线模式可以减少执行nei update的操作,在频繁更改官网数据的情况下能够大幅加快

  • 我们来看看如何配置服务器端的 SSH 访问。 本例中,我们将使用 authorized_keys 方法来对用户进行认证。 同时我们假设你使用的操作系统是标准的 Linux 发行版,比如 Ubuntu。 首先,创建一个操作系统用户 git,并为其建立一个 .ssh 目录。 $ sudo adduser git $ su git $ cd $ mkdir .ssh && chmod 700 .ssh

  • 【什么是squid】 Squid是比较知名的代理软件,它不仅可以跑在linux上还可以跑在windows以及Unix上,它的技术已经非常成熟。目前使用Squid的用户也是十分广泛的。Squid与Linux下其它的代理软件如Apache、Socks、TIS FWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。 Squid的缓存功能相当好用,不仅可以减少带宽的占用,同样也大

  • 【什么是FTP】 也许你对FTP不陌生,但是你是否了解FTP到底是个什么玩意?FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,