Tidak dapat memuat gambar dari keranjang Google Cloud Storage di TensorFlow atau Keras

Aug 17 2020

Saya memiliki keranjang di Google Cloud Storage yang berisi gambar untuk pelatihan model TensorFlow. Saya menggunakan tensorflow_clouduntuk memuat gambar yang disimpan dalam ember yang dipanggil stereo-traindan URL lengkap ke direktori dengan gambar adalah:

gs://stereo-train/data_scene_flow/training/dat

Tetapi menggunakan jalur ini dalam tf.keras.preprocessing.image_dataset_from_directoryfungsi, saya mendapatkan kesalahan di log di Google Cloud Console:

FileNotFoundError: [Errno 2] No such file or directory: 'gs://stereo-train/data_scene_flow/training/dat'

Bagaimana cara mengatasinya?

Kode:

GCP_BUCKET = "stereo-train"

kitti_dir = os.path.join("gs://", GCP_BUCKET, "data_scene_flow")
kitti_training_dir = os.path.join(kitti_dir, "training", "dat")

ds = tf.keras.preprocessing.image_dataset_from_directory(kitti_training_dir, image_size=(375,1242), batch_size=batch_size, shuffle=False, label_mode=None)


Meskipun saya menggunakan yang berikut ini, itu tidak berhasil:


filenames = np.sort(np.asarray(os.listdir(kitti_train))).tolist()
# Make a Dataset of image tensors by reading and decoding the files.
ds = list(map(lambda x: tf.io.decode_image(tf.io.read_file(kitti_train + x)), filenames))

tf.io.read_filealih-alih fungsi keras, saya mendapatkan kesalahan yang sama. Bagaimana cara mengatasinya?

Jawaban

1 mac13k Aug 17 2020 at 10:03

Jika Anda menggunakan Linux atau OSX, Anda dapat menggunakan Google Cloud Storage FUSE yang memungkinkan Anda memasang bucket secara lokal dan menggunakannya seperti sistem file lainnya. Ikuti panduan penginstalan dan kemudian pasang bucket Anda di suatu tempat di sistem Anda, yaitu:

mkdir /mnt/buckets
gcsfuse gs://stereo-train /mnt/buckets

Maka Anda harus dapat menggunakan jalur dari titik pemasangan di kode Anda dan memuat konten dari ember di Keras.