python - 谷歌云 ML 引擎中的 Tensorflow 新操作

标签 python c++ tensorflow google-cloud-ml

我创建了一个新的 Tensorflow 操作,我已经在本地编译和测试它并且它可以工作。

我现在想将它与 Google Cloud ML 引擎一起使用,这需要在云中的每台机器上编译操作。

我已经成功地使用 setup.py 将 C++ 文件和编译器脚本包含在分发中:

from setuptools import setup, find_package

setup(
    name='trainer',
    version='0.1',
    packages=find_packages(),
    package_data={'CPP': ['*.cc', '*.h', 'compile.sh']},
    description = 'Package discription'
)

现在我必须运行 compile.sh,其中包含:

TF_INC=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')

g++ -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 -shared target.cc dependency_1.cc -o taget.so -fPIC -I$TF_INC -I$TF_INC/external/nsync/public -O2

脚本可以使用 subprocess.Popen() 从 python 代码运行,所以这不是问题。

问题是我不知道目录树在谷歌云中的结构,所以我不知道在哪里运行这个脚本,或者以后如何访问它的输出以使用新的操作。

最佳答案

最简单的方法是在本地构建 op,上传到您的 GCS 存储桶,将其复制到 VM(容器),然后通过 tf.load_op_library 使用它。 您可以使用预装的 gsutil cli 或 GCS python 客户端来执行复制。

回到最初的问题: 当我们启动用户作业时,我们首先以 root 身份安装用户代码包,因此对于 python 2.7,它位于 /root/.local/lib/python2.7/site-packages/YOUR_PACKAGE_NAME

关于python - 谷歌云 ML 引擎中的 Tensorflow 新操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47885698/

相关文章:

python - 在 Python 中生成所有大小为 k 的子集(包含 k 个元素)

python - 使用 django 时消除 pylint 误报

c++ - ZMQ 经销商 - 路由器通讯

c++ - C/C++ 位域与按位运算符区分位,哪个更快、更好、更便携?

tensorflow - 了解COCO评估 "maximum detections"

python - 重置列的 MultiIndex 级别

python - 类型错误:* 不支持的操作数类型: 'NoneType' 和 'int'

machine-learning - 如何实际应用经过训练的模型?

python - SWIG:如何使用 %apply 返回结构? 'No typemaps defined' 警告

python - 加载卡住的 tf 模型 - 无占位符张量值