TensorFlow veya Keras'ta bir Google Cloud Storage paketinden görüntüler yüklenemiyor
Google Cloud Storage'da TensorFlow model eğitimi için görüntüler içeren bir paketim var. tensorflow_cloudÇağrılan pakette depolanan resimleri yüklemek için kullanıyorum ve resimlerin stereo-trainbulunduğu dizinin tam URL'si:
gs://stereo-train/data_scene_flow/training/dat
Ancak tf.keras.preprocessing.image_dataset_from_directoryişlevde bu yolu kullanarak , Google Cloud Console'daki günlükte hatayı alıyorum:
FileNotFoundError: [Errno 2] No such file or directory: 'gs://stereo-train/data_scene_flow/training/dat'
Bunu nasıl düzeltebilirim?
Kod:
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)
Aşağıdakileri kullandığımda bile işe yaramıyor:
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_filekeras işlevi yerine aynı hatayı alıyorum. Bunu nasıl düzeltebilirim?
Yanıtlar
Linux veya OSX kullanıyorsanız , paketinizi yerel olarak bağlamanıza ve başka herhangi bir dosya sistemi gibi kullanmanıza olanak tanıyan Google Cloud Storage FUSE'yi kullanabilirsiniz. Kurulum kılavuzunu izleyin ve ardından kovanızı sisteminizin herhangi bir yerine monte edin, örn .:
mkdir /mnt/buckets
gcsfuse gs://stereo-train /mnt/buckets
Daha sonra kodunuzda bağlama noktasından gelen yolları kullanabilmeli ve içeriği Keras'ta paketten yükleyebilmelisiniz.