Как правильно импортировать данные из Google Drive в Google Colab Notebook?
Я знаю, что это очень просто, но мне нужны некоторые указания.
У меня есть Jupyter Notebook, который я использовал для запуска на своей локальной машине с Linux. В блокноте есть некоторый обучающий код для глубокого изучения, который импортирует набор данных, обработку, обучение и прочее.
В моей локальной машине мой набор данных расположен в
'/home/USERNAME/Workspace/Final Year Project/input'
Эта входная папка содержит две подпапки: тренировка и тестирование. Когда я запускаю ноутбук на своем локальном компьютере, он работает отлично, но у моей системы есть некоторые ограничения, поэтому я решил использовать вместо этого Google Colab.
Но главная проблема, с которой я сталкиваюсь, это как импортировать тот же набор данных в Colab? Как я знаю, это можно сделать с помощью Google Drive, но как?
В настоящее время я загружаю свой набор данных в массив numpy, используя путь к файлу
Если я загружу свой набор данных в Google Диск, как я могу использовать этот путь к файлу?
Например, чтобы получить данные обучения, я использую функцию ниже, которая принимает путь к файлу в качестве параметра
# Get training data
def get_X_data(path, output_shape=(None, None)):
'''
Loads images from path/{id}/images/{id}.png into a numpy array
'''
img_paths = ['{0}/{1}/images/{1}.png'.format(path, id) for id in os.listdir(path)]
X_data = np.array([skimage.transform.resize(skimage.io.imread(path)[:,:,:3], output_shape=output_shape, mode='constant', preserve_range=True) for path in img_paths], dtype=np.uint8) #take only 3 channels/bands
return X_data
X_train = get_X_data(train_path, output_shape=(img_height,img_width))
Любая помощь могла бы быть полезна. Благодарю вас.
2 ответа
Простой способ синхронизировать ваши файлы с Drive на macOS или Window - это установить клиент Drive Sync - https://www.google.com/drive/download/
Затем в Colab вы можете смонтировать файлы Drive с помощью следующей команды:
from google.colab import drive
drive.mount('/content/drive')
После этого ваши файлы появятся в пути /content/drive/My Drive
и в файловом браузере так:
Вы должны использовать этот код там после загрузки набора данных в Drive
- Убедитесь, что этот фрагмент кода скопирован в другую ячейку перед выполнением имеющихся у вас ячеек кода.
- Сначала запустите этот код в ячейке
!pip install -U -q PyDrive
Затем запустите эту часть кода
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
file_id = 'REPLACE_WITH_YOUR_FILE_ID'
downloaded = drive.CreateFile({'id': file_id})
print('Downloaded content "{}"'.format(downloaded.GetContentString()))
Примечание. Для каждого файла на диске Google у вас будет file_id, в котором будет указана общая ссылка на этот файл, а в последней части этой ссылки вы получите идентификатор файла. Идентификатор файла выглядит следующим образом: laggVyWshwcyP6kEI-y_W3P8D26sz.
- Замените этот file_id в коде