TensorFlow या Keras में Google क्लाउड स्टोरेज बाल्टी से चित्र लोड करने में असमर्थ

Aug 17 2020

मेरे पास Google क्लाउड स्टोरेज पर एक बाल्टी है जिसमें एक TensorFlow मॉडल प्रशिक्षण के लिए चित्र हैं। मैं tensorflow_cloudबाल्टी में संग्रहीत छवियों को लोड करने के लिए उपयोग कर रहा हूं stereo-trainऔर छवियों के साथ निर्देशिका में पूर्ण URL है:

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

लेकिन tf.keras.preprocessing.image_dataset_from_directoryफ़ंक्शन में इस पथ का उपयोग करते हुए , मुझे Google क्लाउड कंसोल में लॉग में त्रुटि मिलती है:

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

इसे कैसे ठीक करें?

कोड:

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)


जब मैं निम्नलिखित का उपयोग करता हूं, तब भी यह काम नहीं करता है:


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कार्स फ़ंक्शन के बजाय, मुझे वही त्रुटि मिलती है। इसे कैसे ठीक करें?

जवाब

1 mac13k Aug 17 2020 at 10:03

यदि आप लिनक्स या OSX का उपयोग कर रहे हैं, तो आप Google क्लाउड स्टोरेज FUSE का उपयोग कर सकते हैं जो आपको अपनी बाल्टी को स्थानीय रूप से माउंट करने और किसी अन्य फ़ाइल सिस्टम की तरह उपयोग करने की अनुमति देगा। इंस्टॉलेशन गाइड का पालन करें और फिर अपने सिस्टम पर कहीं बाल्टी को माउंट करें, यानी:

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

फिर आपको अपने कोड में आरोह बिंदु से पथों का उपयोग करने में सक्षम होना चाहिए और सामग्री को बाल्टी से बाल्टी में लोड करना चाहिए।