私は新しいTensorflowオペレーションを作成しました。私はコンパイルしてローカルでテストしました。Tensorflow新しいオペレーションgoogle cloud mlエンジン
クラウド内の各マシンでopをコンパイルする必要がある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
Pythonコードからsubprocess.Popen()
を使用しているので問題ありません。
問題は、ディレクトリツリーがGoogleクラウド内でどのように構成されているかわからないため、このスクリプトをどこで実行するのかわかりません。後でその出力にアクセスして新しいオペ。
私が間違っていると私を修正しますが、私がローカルでopをコンパイルすると、gcloudマシンでは実行されません。右?私はmacOSを使い、gcloudはLinuxを使います。 – Miguel
はい、私たちはLinuxを使用していて、macで動作するopsは動作しないかもしれません。私が最初に提案したものを試したいなら、GCEのLinux VMでopをビルドすることができます。 –
さて、私はそれを試してみましょう。あなたはこれを前にしたことがありますか? (GCEのVMに組み込み、次にopを使用します)。 – Miguel