You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a SageMaker Pipeline with one Processing Step that evaluates a model. The python script that does the evaluation requires TensorFlow so I'm using the TensorFlowProcessor class. Here is how I'm creating an instance of this class:
Notice how I'm specifying a Python script (evaluation.py) and I'm also telling the processor that the Python version should be 3.8. Despite this, the Processing Job tries to execute the script using /bin/bash evaluation.py instead of python3 evaluation.py.
Workaround
I can set the framework_entrypoint_command attribute directly and that solves the problem:
Haven't dived deep on this issue but dropping by with an FYI because a misunderstanding on a previous FrameworkProcessor+Pipelines issue when FrameworkProcessor first launched caused some delay and re-work:
The FrameworkProcessor delivers estimator-like source_dir functionality by creating a shell script to extract your source bundle and install requirements.txt if present. This shell script is transparently added as an additional input to your Processing Job, so the actual ProcessingJob entrypoint is shell, but then it invokes your "real" script with Python.
I believe FrameworkProcessor behaviour might be working correctly with the new PipelineSession based syntax but broken with the old processor= syntax which it looks like you're using.
Could you try restructuring your pipeline definition code something like:
The new syntax reduces the amount of code change required for toggling between manually creating jobs and building pipelines (it's the same .run(...) call, just used with a pipeline session). I believe when FrameworkProcessor is used the old way, it might not be correctly creating & inserting the shell script entrypoint.
SageMaker Python SDK version: 2.173.0
I have a SageMaker Pipeline with one Processing Step that evaluates a model. The python script that does the evaluation requires TensorFlow so I'm using the TensorFlowProcessor class. Here is how I'm creating an instance of this class:
Here is the definition of the ProcessingStep that uses the processor above:
Notice how I'm specifying a Python script (
evaluation.py
) and I'm also telling the processor that the Python version should be 3.8. Despite this, the Processing Job tries to execute the script using/bin/bash evaluation.py
instead ofpython3 evaluation.py
.Workaround
I can set the
framework_entrypoint_command
attribute directly and that solves the problem:The text was updated successfully, but these errors were encountered: