2 回答

TA貢獻1777條經驗 獲得超3個贊
2. Use a bash script to copy the packages from s3 using the CLI. The bash script I used is based off this post. But the packages never get copied, and an error message is not thrown.
這種方法似乎很合理。
您最好覆蓋tocommand
上的字段,運行 bash 腳本,就像安裝包含 python 依賴項的wheel,然后運行主 python 入口點腳本。SKLearnProcessor
/bin/bash
install_and_run_my_python_code.sh
此外,您可以使用ProcessingInput來下載代碼,而不是使用AWS S3調用來下載腳本中的代碼,而不是使用bash腳本中的AWS CLI調用來下載代碼,這就是SKLearnProcessor
下載入口點script.py
代碼的方法。所有實例。

TA貢獻1818條經驗 獲得超8個贊
還有其他一些選擇。這是我能想到的所有選項(有些已經提到了)
使用
sagemaker.processing.*Processor.run(code=<bash script>)
bash 腳本從存儲庫中提?。禾峤坏?Codecommit/Github/Bitbucket 存儲庫,并使用您的運行 bash 腳本通過從同一存儲庫克隆來進行設置Hijack
ProcessingInput
:指向ProcessingInput
本地目錄,或者通過將文件上傳到 S3 并指向ProcessingInput
同一個 S3 來進行預先設置。將您的庫打包并推送到本地存儲庫(Nexus、EC2、CodArtifact,支持此),然后像任何帶有 bash 運行文件的 python 包一樣安裝它們。
劫持
sagemaker.sklearn.estimator
并用于source_dir
指定您的整個源目錄從包中編譯一個輪子并推送到容器并
ProcessingInput
安裝。
這些都不是很好。我沒有做1,因為我不想每次都推送最新的代碼來測試,不想構建一個包(3)或編譯一個輪子(5),并使用估計器來運行處理作業似乎是錯誤的。使用 2,在我的情況下,有必要將單個文件放在正確的位置(ProcessingInput
不支持單個文件,并且我在更高的目錄中有 pyproject.toml),因此運行該作業的作業腳本通過訂購進行預先設置并將文件上傳到 S3,我在ProcessingInput
.
添加回答
舉報