Загрузка данных с Google Диска Colab

#python #tensorflow #keras #download #google-colaboratory

#python #тензорный поток #keras #Скачать #google-colaboratory

Вопрос:

Я новичок в TensorFlow и python в целом, поэтому буду признателен за любую помощь. Я следую этому руководству от tensorflow, только с моими собственными данными.

Итак, я пытаюсь загрузить свои собственные данные по ссылке, которую я получил из папки, которую я загрузил на Google Диск. Затем я буду использовать эти данные в модели классификатора изображений. Однако я начинаю видеть, как загружаются изображения, и в нем говорится:

 dataset_url_training = "https://drive.google.com/drive/folders/genericid?usp=sharing" 
data_dir_training = tf.keras.utils.get_file('flower_photos', origin=dataset_url_training, untar=True)
data_dir_training = pathlib.Path(data_dir_training)
 

Загрузка данных с https://drive.google.com/drive/folders/genericid?usp=sharing

106496 / Неизвестно — 2s 14us / шаг

А затем он просто останавливается. И когда я пытаюсь использовать следующий код:

 print(image_count)
 

Вывод выдает: 0

Я действительно в замешательстве и не знаю, что делать. Некоторые предложения заключались в создании URL-адреса zip-файла, но это относится только к отдельным файлам и не работает для целых папок, таких как моя. Кроме того, насколько я знаю, Google Drive не позволяет вам получать ссылки на zip-файлы, только для обмена (для пояснения, это мои собственные файлы).

Спасибо.

Редактировать 1: просто хочу прояснить: я НЕ ищу путь. Я ищу URL-адрес, отсюда и использование каталога. Я также пытался использовать. ссылка на zip-файл, но я получил то же сообщение об ошибке, что и раньше.

Ответ №1:

Если вы хотите использовать файл с Google Диска в colab, вы можете подключить наш диск к colab.

 from google.colab import drive

drive.mount('/content/gdrive')
 

Затем вы можете открывать файлы с Google Диска.
Например, ваш файл находится в каталоге «папка» на вашей главной странице диска:

 path = "gdrive/My Drive/folder/flower_photos"
 

Редактирование / добавление:

Чтобы сделать его более понятным, вы измените эту часть из руководства

 import pathlib
dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
data_dir = tf.keras.utils.get_file('flower_photos', origin=dataset_url, untar=True)
data_dir = pathlib.Path(data_dir)
 

для этого

 import pathlib
from google.colab import drive
drive.mount('/content/gdrive')
data_dir = "gdrive/My Drive/flower_photos"
data_dir = pathlib.Path(data_dir)
 

Комментарии:

1. Привет, Дер-Давидос, спасибо за вашу помощь. Тем не менее, я буквально сделал то, что вы сказали, и это дает мне: ValueError: неизвестный тип url: ‘gdrive / My Drive / folder /flower_photos’ Редактировать: я также пытался удалить пробел, используя люфты, помещая /content в начало и почти любую другую итерацию. Ни один из них не работал

2. Я предполагаю, что вы все еще используете tf.keras.utils.get_file()? Потому что это для получения файлов с URL-адреса, как описано здесь . Но вам больше не нужно получать их по URL-адресу, вы сможете продолжить учебник, используя путь к вашему каталогу вместо data_dir .

3. Да, это так, но проблема в том, как мне изменить следующий код, если я использую не каталог, а путь? Мне пришлось бы изменить весь мой код, поэтому я предпочел бы просто использовать URL. Если бы вы могли сообщить мне, как это сделать, я был бы очень признателен. ds_train = tf.keras.preprocessing.image_dataset_from_directory( data_dir, validation_split=0.2, subset="training", seed=123, image_size=(img_height, img_width), batch_size=batch_size)

4. Я сделал дополнение к своему ответу, надеюсь, теперь это более понятно.

5. Большое вам спасибо!! Вы действительно спасли мне жизнь