2

我目前正在为 acumos AI 挑战做一个项目,我正在创建一个简单的 Tensorflow 程序来尝试上传。我遇到的问题是 acumos 支持使用要求使用 python 依赖项,但我还没有找到一种方法来添加 .tf 文件(用于预训练的 tensorflow 模型)或 .txt 文件(用于数据)。

该站点允许我上传我的模型,而无需将我的预训练 tensorflow 模型添加为依赖项,但是当我在另一台计算机上的 docker 上运行它时,我会收到此错误...

[2018-08-03 21:48:58 +0000] [11] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "runner.py", line 102, in load
    return build_app(self.parsed_args)
  File "runner.py", line 115, in build_app
    model = load_model(pargs.modeldir)  # refers to ./model dir in pwd. generated by helper script also in this dir
  File "/usr/local/lib/python3.6/site-packages/acumos/wrapped.py", line 42, in load_model
    model = _load_model(f)
  File "/usr/local/lib/python3.6/site-packages/dill/dill.py", line 288, in load
    obj = pik.load()
  File "/usr/local/lib/python3.6/site-packages/dill/dill.py", line 546, in _load_type
    return _reverse_typemap[name]
KeyError: 'ClassType'
[2018-08-03 21:48:58 +0000] [11] [INFO] Worker exiting (pid: 11)
[2018-08-03 21:48:58 +0000] [10] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "runner.py", line 102, in load
    return build_app(self.parsed_args)
  File "runner.py", line 115, in build_app
    model = load_model(pargs.modeldir)  # refers to ./model dir in pwd. generated by helper script also in this dir
  File "/usr/local/lib/python3.6/site-packages/acumos/wrapped.py", line 42, in load_model
    model = _load_model(f)
  File "/usr/local/lib/python3.6/site-packages/dill/dill.py", line 288, in load
    obj = pik.load()
  File "/usr/local/lib/python3.6/site-packages/dill/dill.py", line 546, in _load_type
    return _reverse_typemap[name]
KeyError: 'ClassType'
[2018-08-03 21:48:58 +0000] [10] [INFO] Worker exiting (pid: 10)
[2018-08-03 21:48:58 +0000] [1] [INFO] Shutting down: Master
[2018-08-03 21:48:58 +0000] [1] [INFO] Reason: Worker failed to boot.

这只是我的猜测,这个错误是由于 introception 缺少 .tf 文件引起的,但我可能完全错了。我还应该提到,我的 docker 容器适用于我构建的不需要外部文件的模型(即简单的 a+b = c 类型模型)。

对此的任何帮助都会很棒!谢谢!

4

1 回答 1

0

Acumos 不直接支持添加任意文件类型依赖项,不幸的是,它不会自动推断它们。需求机制适用于 Python 依赖项。还有其他方法可以在不使用外部文件的情况下构建预训练的 Tensorflow 模型;查看 Acumos 开源存储库 ( https://gerrit.acumos.org ) 中的一些模型。如果在转储或推送之前将模型(以及任何外部文件的内容,如 .txt)加载到内存中,Python Acumos 客户端将正确序列化它,这是典型的使用模式。在此处查看 Tensorflow 示例:https ://github.com/acumos/acumos-python-client/blob/master/examples/tensorflow_example.py. 您可以反序列化 Tensorflow 模型,而不是从头开始构建模型。那么这个例子的其余部分应该仍然成立。. 您可能会尝试的另一件事是在包含您想要的文件的子目录中创建一个包,并包括使用标准需求机制的文件。我相信 Acumos 客户端在创建代表您的模型的存档时只是将您在包目录中的所有内容打包。但请先尝试其他建议。

于 2018-08-04T15:45:10.737 回答