Bring your own container Vs Bring your own script

Under what circumstances, would bring my own container make more sense than, bring my own script?

SageMaker already has built in containers for TF, PyTorch, MXNet, I assume. So, in my naive opinion, wouldn’t we always end up using one amongst these, even though our underlying train and eval script might vary under the condition that we are using one of these 3 platforms?

Hi @bagyaboy,

Let’s say I work on python 2.7 and using dependency libraries built a program. I send the program to you, but your workstation only contains python 3.x. The program won’t run, even if you installed python 2.7, there might be a clash between the dependencies. So, most of the times developers use a virtual env and send the requirements text file along with scripts(If you had tried to install Caffe python2.x along with TensorFlow and PyTorch python 3, you will understand how painful the process is). Even then there might be issues such as the end customer might not know how to run the .sh file and install dependencies and create a virtual environment. To overcome this issue also, we send Virtual machines. So, the question now breakdown to what is the difference between VM’s and containers. This video explains it perfectly. Let me know if you have further questions.

Best Regards,
A. Sriharsha

Note: Sagemaker is available in different versions too.

Best Regards,
A. Sriharsha
Best Regards,
A. Sriharsha

2 Likes