AWS SageMaker SKПоискать точку входа в подкаталог? - PullRequest
0 голосов
/ 02 октября 2019

Могу ли я указать сценарий точки входа оценщика SageMaker в подкаталоге? Пока что мне это не удается. Вот что я хочу сделать:

sklearn = SKLearn(
    entry_point="RandomForest/my_script.py",
    source_dir="../",
    hyperparameters={...

Я хочу сделать это, чтобы мне не пришлось нарушать структуру каталогов. У меня есть несколько модулей, которые я использую в нескольких проектах Sagemaker, и каждый проект живет в своем собственном каталоге:

my_git_repo/

  RandomForest/
    my_script.py
    my_sagemaker_notebook.ipynb

  TensorFlow/
    my_script.py
    my_other_sagemaker_notebook.ipynb

module_imported_in_both_scripts.py

Если я пытаюсь запустить это, SageMaker завершается ошибкой, потому что кажется, что он анализирует имя записиУкажите сценарий, чтобы сделать из него имя модуля, и он не работает должным образом:

/usr/bin/python3 -m RandomForest/my_script --bootstrap True --case nf_2 --max_features 0.5 --min_impurity_decrease 5.323785009485933e-06 --model_name model --n_estimators 455 --oob_score True

...

/usr/bin/python3: No module named RandomForest/my_script

Любой знает способ обойти это, кроме ввода my_script.py в source_dir?

Похожие вопросы

Ответы [ 2 ]

1 голос
/ 24 октября 2019

К сожалению, это пробел в функциональности. В https://github.com/aws/sagemaker-python-sdk/pull/941 есть некоторая связанная работа, которая также должна решить эту проблему, но сейчас вам нужно поместить my_script.py в source_dir.

0 голосов
/ 25 октября 2019

Что делать, если вы делаете source_dir = my_git_repo/RandomForest? В противном случае вы также можете использовать функциональность сборки (например, CodeBuild - но это также может быть некоторый пользовательский код, например, в Lambda или Airflow) для отправки вашего скрипта в виде сжатого артефакта в s3, так как это нижеSDK уровня, такие как boto3, ожидают вашего скрипта;этот тип интеграции показан в разделе boto3 демонстрационной версии 1006 *

SageMaker Sklearn
...