проблемы с protobuf в Sagemaker - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь сделать машинный алгоритм факторизации в Sagemaker, но он дает мне ValueError

изначально для разреженной матрицы, но мои данные не так, я изменил ее слишком плотно

import numpy as np
from scipy.sparse import csr_matrix
from scipy.sparse import lil_matrix
Here is the code:


train_key      = 'train.protobuf'
train_prefix   = '{}/{}/'.format(prefix, 'train')
test_key       = 'test.protobuf'
test_prefix    = '{}/{}/'.format(prefix, 'test')
output_prefix  = '{}/{}/output'.format(bucket, prefix)
def writeDatasetToProtobuf(X, y, bucket, prefix, key):
    import io,boto3
    import sagemaker.amazon.common as smac
    buf = io.BytesIO()
    smac.write_numpy_to_dense_tensor(buf, X.astype('float32'), y.astype('float32'))
    buf.seek(0)
    print (buf)
    obj = '{}/{}'.format(prefix, key)
    boto3.resource('s3').Bucket(bucket).Object(obj).upload_fileobj(buf)
    print('Wrote dataset: {}/{}'.format(bucket,obj))

writeDatasetToProtobuf(X_train.astype('float32'), y_train.astype('float32'), bucket, train_prefix, train_key)    
writeDatasetToProtobuf(X_test.astype('float32'), y_test.astype('float32'), bucket, test_prefix, test_key)    

print('Output: {}'.format(output_prefix))

ValueError: метки должны быть векторами

...