Sagemaker Pytorch: не могу импортировать склеарн из учебного скрипта - PullRequest
0 голосов
/ 02 июня 2019

Я использую модель pytorch в sagemaker

from sagemaker.pytorch import PyTorch

estimator = PyTorch(entry_point='train.py',
                    role=role,
                    framework_version='1.0.0',
                    train_instance_count=1,
                    train_instance_type='ml.m4.xlarge',
                    source_dir='source', #the directory where the supporting files are

                    #what is passed in
                    hyperparameters={
                        'max_epochs' : 6,
                        'layer_dim'  : "2500,500,100,1",
                        'batch_size' : 64,
                        'seed'       : 4524,
                        'cuda'       : False
                        }
                   )

, где сценарий входа train.py включает в себя несколько импортов

import argparse
import math
import os
from shutil import copy
import time
import torch
import torch.nn as nn
from sklearn.preprocessing import StandardScaler

Но вызов sklearn завершается неудачно:

  File "/opt/ml/code/train.py", line 9, in <module>
    from sklearn.preprocessing import StandardScaler
ModuleNotFoundError: No module named 'sklearn'

Вопросы:

  1. Как использовать функции sklearn в этом случае?
  2. Можете ли вы добавить дополнительные установки pip без перехода по настраиваемому маршруту Docker?

1 Ответ

1 голос
/ 02 июня 2019

Да, вы можете устанавливать зависимости, не переходя по маршруту настраиваемого dockerfile (также BYO Container)

Используйте это в своем коде (где mypackage представляет пакет пипов на ваш выбор)

import subprocess as sb 
import sys 

sb.call([sys.executable, "-m", "pip", "install", mypackage]) 
...