将数据从 Google Storage Bucket 读取到 Array



如果我想从Google Cloud Storage bucket(而不是本地存储(读取数据并将其放入像此函数一样的数组中,如何替换此函数?

def load_data(img_dir):
return np.array(
[cv2.imread(os.path.join(img_dir, img), 0).flatten() for img in os.listdir(img_dir) if img.endswith(".jpg")])       

你需要改用OpenCV的imdecode函数,以及google-cloud-storage包:

from google.cloud import storage
import numpy as np
import cv2
def load_data(bucket_name):
bucket = storage.Client().get_bucket(bucket_name)
return np.array(
cv2.imdecode(
np.asarray(bytearray(blob.download_as_string()), dtype=np.uint8), 0
).flatten()
for blob in bucket.list_blobs()
if blob.name.endswith(".jpg")
)

最新更新