それは一種の困難なタイトルに説明することである、下記を参照してください。、Pythonスクリプトでは、bashのコマンドを実行すると、他のPythonモジュールに
を私はカフェ関数の呼び出しを行うために使用bashスクリプト、この具体的な例ソルバープロトタイプを使用してモデルを訓練する:
#!/bin/bash
TOOLS=../../build/tools
export HDF5_DISABLE_VERSION_CHECK=1
export PYTHONPATH=.
#for debugging python layer
GLOG_logtostderr=1 $TOOLS/caffe train -solver lstm_solver_flow.prototxt -weights single_frame_all_layers_hyb_flow_iter_50000.caffemodel
echo "Done."
私は何度もこの問題に取り組んできた。それは、「列車」や引数を渡すなど、Caffeフレームワークの組み込み関数を使用することです。列車コードは主にC++でビルドされていますが、カスタムデータレイヤー用のPythonスクリプトを呼び出します。シェルでは、すべてがスムーズに実行されます。
さて、私はPythonスクリプト(INIT)の中から、bashのコマンドを実行している場合、それはシェル= Trueの
import subprocess
subprocess.call("export HDF5_DISABLE_VERSION_CHECK=1",shell=True))
subprocess.call("export PYTHONPATH=.",shell=True))
#for debugging python layer
subprocess.call("GLOG_logtostderr=1 sampleexact/samplepath/build/tools/caffe train -solver lstm_solver_flow.prototxt -weights single_frame_all_layers_hyb_flow_iter_50000.caffemodel",shell=True))
で)(subprocess.callを使用してPythonスクリプトでこれらの正確なコマンドを呼び出しています列車のプロセスが列車のプロセスを開始することができますが、列車のプロセスは、カスタムレイヤのための別のPythonモジュールを呼び出し、それを見つけることができません。 initレイヤーとカスタムレイヤーモジュールは、両方とも同じフォルダーにあります。
この問題を解決するにはどうすればよいですか?私は本当にPythonからそれを実行して、私がデバッグできるようにする必要があります。プロジェクトの中の-any-pythonモジュールを他者からの呼び出しに到達できるようにする方法はありますか?