Tidak dapat memuat gambar dari keranjang Google Cloud Storage di TensorFlow atau Keras
Saya memiliki keranjang di Google Cloud Storage yang berisi gambar untuk pelatihan model TensorFlow. Saya menggunakan tensorflow_cloud
untuk memuat gambar yang disimpan dalam ember yang dipanggil stereo-train
dan 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_directory
fungsi, 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_file
alih-alih fungsi keras, saya mendapatkan kesalahan yang sama. Bagaimana cara mengatasinya?
Jawaban
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.