我有一些数据集和标签,它们基本上是扩展名为.npy的numpy保存的文件。
我已经将train.npy和train_labels.npy保存在我的google驱动器中。
在使用Google时,我必须使用这些数据。我能够在我的驱动器中找到文件夹和数据文件的id。如何将这些数据文件加载到Google使用的虚拟机的内存中?
发布于 2018-02-15 07:20:42
解决了。
首先,执行文档中所述的简单身份验证。
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
# 1. Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
我创建了一些助手函数,如果您知道文件名和文件夹id,那么它将获取文件id。文件夹id是drive.google.com/./../文件夹/中链接的最后一部分。
def get_file_from_drive(folder_id, file_name):
file_list = drive.ListFile({'q': "'" + folder_id + "' in parents and
trashed=false"}).GetList()
for file in file_list:
if file['title'] == file_name:
return file['id']
def upload_file_to_drive(file_name, file_data):
uploaded = drive.CreateFile({'title': file_name})
uploaded.SetContentString(file_data)
uploaded.Upload()
print('Uploaded file with ID {}'.format(uploaded.get('id')))
drive_folder_id = '<Folder ID>'
此功能将文件从google驱动器上传到colab允许您使用的虚拟系统中。
def upload_data_system():
downloaded = drive.CreateFile({'id': get_file_from_drive(drive_folder_id, 'train.npy')})
downloaded.GetContentFile('train.npy')
downloaded = drive.CreateFile({'id': get_file_from_drive(drive_folder_id, 'train_labels.npy')})
downloaded.GetContentFile('train_labels.
upload_data_system()
维奥拉!您的文件被上传到文件系统,并可以使用简单的python加载到内存中,就像在本地完成的那样。要验证,请在colab上运行这个。你应该看看你的档案
import os
from os import listdir
for f in os.listdir('.'):
if os.path.isfile(f):
print(f)
现在将numpy文件加载为np.load(path_to_file_in_filesystem)
https://stackoverflow.com/questions/48801379
复制相似问题