Преобразование файла gzip в файл npy - PullRequest
0 голосов
/ 23 мая 2019

Для моей модели ML мне нужно открыть файл gzip и преобразовать его в массив.Мой код выглядит так:

def load_data(path):
    with np.load(path) as f:
        x_train, y_train = f['x_train'], f['y_train']
        x_test, y_test = f['x_test'], f['y_test']
        return (x_train, y_train), (x_test, y_test)

(x_train, y_train), (x_test, y_test) = load_data('../input/mnist-numpy/mnist.npz')

x_train = trainimages.reshape(trainimages.shape[0],784)
y_train = trainimages.reshape(trainimages.shape[0],1)
x_test = testimages.reshape(testimages.shape[0],784)
y_test = testimages.reshape(testimages.shape[0],1)
MNIST_image = np.vstack( (x_train,x_test) )
MNIST_label = np.vstack( (y_train,y_test) )

В настоящий момент я получаю сообщение об ошибке, потому что не могу изменить форму файла GZ.Кто-нибудь знает, как создавать массивы, или, может быть, есть другое решение для запуска кода?

Моя ошибка выглядит так

 Traceback (most recent call last): File "<ipython-input-18-c86c75005844>", line 1, in <module> 
    x_train = trainimages.reshape(trainimages.shape[0],784) 
 AttributeError: 'GzipFile' object has no attribute 'reshape' 

1 Ответ

0 голосов
/ 23 мая 2019

Этот код и ошибка не о загрузке файла gzip.

Очевидно, trainimages - это объект GzipFile, но это не то, что производит функция load_data. Это должно быть перенесено из некоторого более раннего кодирования в сценарии.

Очевидно, load_data успешно работает с файлом npz, который является zip-archive (возможно, с собственным сжатием без gzip). Он возвращает 4 массива с именами вроде x_train и т. Д. Это те массивы, которые могут нуждаться в изменении (я бы проверил сначала), а не поддельные trainimages.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...