Как прочитать файл во время обучения в AWS SageMaker?

Я пытаюсь обучить пользовательскую модель тензорного потока с помощью AWS SageMaker. Таким образом, в методе model_fn, который я должен предоставить, я хочу иметь возможность читать внешний файл. Я загрузил файл на S3 и пытаюсь читать, как показано ниже:

BUCKET_PATH = 's3://<bucket_name>/data/<prefix>/'

def model_fn(features, labels, mode, params):
    # Load vocabulary
    vocab_path = os.path.join(BUCKET_PATH, 'vocab.pkl')
    with open(vocab_path, 'rb') as f:
        vocab = pickle.load(f)
    n_vocab = len(vocab)
    ...

Я получаю IOError: [Errno 2] No such file or directory

Как мне прочитать этот файл во время тренировки?


person Dimitris Poulopoulos    schedule 11.04.2018    source источник
comment
Я использовал boto3 для загрузки файлов из S3 в обучающий экземпляр. Вам также нужно получить доступ к этому файлу из экземпляра конечной точки?   -  person Dan    schedule 13.04.2018


Ответы (1)


Я не думаю, что pickle.load может пинговать ведро S3. Вы можете сохранить данные в пути к записной книжке python или загрузить их с помощью клиента boto3.

Более того, вы, вероятно, не захотите загружать его в model_fn. Это будет называться для каждой эпохи. Обычно данные загружаются и подготавливаются в train_input_fn.

person Raman    schedule 11.04.2018