1
votes

I am trying train my model code using Docker Container - AWS SageMaker using following code.

    'https://github.com/awslabs/amazon-sagemaker- 
examples/blob/master/advanced_functionality/scikit_bring_your_own/scikit_bring_your_own.ipynb'

But I get below error when I Try to train my model using

 tree.fit(data_location)

Error:

  Traceback (most recent call last):
    File "/opt/program/train", line 17, in <module>
     from sklearn import tree
    File "/usr/local/lib/python2.7/dist-packages/sklearn/__init__.py", line 
      64, in <module>
     from .base import clone
    File "/usr/local/lib/python2.7/dist-packages/sklearn/base.py", line 
       13, in <module>
      from .utils.fixes import signature
    File "/usr/local/lib/python2.7/dist- 
       packages/sklearn/utils/__init__.py", line 16, in <module>
      from .fixes import _Sequence as Sequence
    File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/fixes.py", 
       line 85, in <module>
      from scipy.special import boxcox  # noqa
    File "/usr/local/lib/python2.7/dist- 
       packages/scipy/special/__init__.py", line 641, in <module>
       from ._ufuncs import *
    ImportError: libopenblasp-r0-8dca6697.3.0.dev.so: cannot open shared 
       object file: No such file or directory

error message 2

   Error for Training job decision-trees-sample-2019-01-18-07-44-37-282: Failed Reason: AlgorithmError: Exit Code: 1

I wend to the directory and did not find 'sklearn' directory.

  sh-4.2$ pwd
    /usr/local/lib/python2.7/dist-packages
  sh-4.2$ ls -l
    total 3244
  -rwxr-xr-x 1 root root 3318568 Sep 18 03:23 cv2.so

My current jupyter notebook points to root environment and it has sklearn package available , not sure how make it available in above location where I see error, not sure if this is what will resolve the issue or something else needs to be done.

I am new to Amazon SageMaker.

Expected result: I am expecting the training job to complete without error

1

1 Answers

0
votes

It looks like you're missing a dependency (libopenblas) in your custom container. You should probably add it to your Docker file.

Instead of building a custom container, I would recommend using the built-in container for sckit-learn. It's been quietly launched at re:Invent. Here's an example:

https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/scikit_learn_iris