Sagemaker Processingで独自のコードを複数利用方法
はじめに
Sagemaker ProcessingでSKLearnProcessorを利用する際に、複数の自作コードをコンテナに持っていって利用する方法を解説します。processing処理が書いてあるpythonスクリプトで別のpythonファイルの処理を呼び出している時とかに利用できます。
複数の自作コードをコンテナで利用する方法
SKLearnProcessorを利用した例です。
sklearn_processor = SKLearnProcessor( framework_version=“0.23-1”, role=sagemaker_role, instance_count=1, instance_type=“ml.m5.2xlarge” base_job_name=“test_job” sklearn_processor.run( code=“preprocessing.py”, # コンテナ内の/opt/ml/processing/input/codeに配置される inputs=[ ProcessingInput(source=“./python”, destination=“/opt/ml/processing/input/code/python”) ] )
code引数に渡したコードはコンテナ内の/opt/ml/processing/input/codeに配置されます。例えばprocessing.pyで./python/配下に配置されているコードをimportしてコンテナ内で実行させたい場合は、inputsとしてprocessing.pyが配置される同階層にフォルダを渡してあげます。こうすることで、複数の自作コードをsagemakerのコンテナ内に持っていけます。
注意点としてdestinationに同じパスを指定するとエラーになるので/opt/ml/processing/input/codeとは違うパスを指定する必要があります。
あとはprosessing.pyで以下のようにインポートして利用できます。
from python.hello import hello