Как загрузить коврик из хранилища Google в блокнот Jupyter - PullRequest
1 голос
/ 29 апреля 2019

Я пытаюсь обучить модель на ~ 16 ГБ данных изображения. Мне нужно импортировать файл annotations.mat из моего хранилища Cloud Storage. Однако, поскольку loadmat требует путь к файлу, я не уверен, как импортировать путь к корзине Google Storage. Я пытался создать pickle файл данных мата, но Jupyter Notebook вылетает.

Текущая попытка:

from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket('bucket-id')
blob = bucket.get_blob('path/to/annotations.pkl')
# crashes here
print(blob.download_as_string())

Я хочу сделать что-то вроде:

import scipy.io as sio

client = storage.Client()
bucket = client.get_bucket('bucket-id')

matfile = sio.loadmat(buket_path + 'path/to/annotations.pkl')

Кто-нибудь знает, как загрузить файл mat из корзины Cloud Storage?

Ответы [ 2 ]

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

Я не нашел прямого импорта из файла blob object в mat в python. Однако есть обходной путь, который решит проблему: вместо непосредственного импорта объекта blob и чтения его через loadmat создайте временный файл и используйте путь для функции loadmat.

Чтобы воспроизвести сценарий, я последовал примеру Python * Cloud Cloud Storage (загрузил файл mat в корзину). Следующий код Python загружает объект blob, читает его, используя loadmat, и, наконец, удаляет созданный файл:

from google.cloud import storage
import scipy.io


bucket_name = '<BUCKET NAME>'
mat_file_path = '<PATH>/<MAT FILENAME>'
temp_mat_filename = 'temp.mat'

storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(mat_file_path)
# Download mat file to temporary mat file
blob.download_to_filename(temp_mat_filename)
# Get mat object from temporary mat file
mat = scipy.io.loadmat(temp_mat_filename)
# Remove temp_mat_filename file
# import os
# os.remove(temp_mat_filename)

Надеюсь, это поможет:)

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

Этот код описывает загрузку объекта в корзину.Я добавляю URL, где вы можете найти больше информации:

https://cloud.google.com/storage/docs/uploading-objects.

...