访问' .pickle'谷歌Colab中的文件

时间:2018-03-10 07:25:57

标签: python tensorflow google-data-api google-colaboratory

使用Google的Colab作为ML的首选工具,我相当陌生。

在我的实验中,我必须使用' notMNIST'数据集,我已经设置了'notMNIST'我的Google云端硬盘中的数据为notMNIST.pickle,位于名为Data的文件夹下。

说完这个,我想要访问这个' .pickle'在我的Google Colab中存档,以便我可以使用此数据。

有没有办法可以访问它?

我已经阅读了有关StackOverflow的文档和一些问题,但他们谈到了上传,下载文件和/或处理'表格。

但是,我想要的是在环境中加载notMNIST.pickle文件并将其用于进一步处理。

任何帮助将不胜感激。

谢谢!

4 个答案:

答案 0 :(得分:3)

您可以尝试以下操作:

import pickle
drive.mount('/content/drive')
DATA_PATH = "/content/drive/Data"
infile = open(DATA_PATH+'/notMNIST.pickle','rb')
best_model2 = pickle.load(infile)

答案 1 :(得分:2)

Google云端硬盘中的数据存在于云端,而且在实验室中,谷歌提供了一个个人的Linux虚拟机,您的笔记本电脑将在该虚拟机上运行。因此您需要从谷歌硬盘下载到您的实验室虚拟机并使用它。您可以关注this下载教程

答案 2 :(得分:1)

您可以使用pydrive。首先,您需要找到文件的ID。

# Install the PyDrive wrapper & import libraries.
# This only needs to be done once per notebook.
!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

# Authenticate and create the PyDrive client.
# This only needs to be done once per notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# Download a file based on its file ID.
#
# A file ID looks like: laggVyWshwcyP6kEI-y_W3P8D26sz
listed = drive.ListFile({'q': "title contains '.pkl' and 'root' in parents"}).GetList()
for file in listed:
    print('title {}, id {}'.format(file['title'], file['id']))

然后您可以使用以下代码加载文件:

from googleapiclient.discovery import build
drive_service = build('drive', 'v3')

import io
import pickle
from googleapiclient.http import MediaIoBaseDownload

file_id = 'laggVyWshwcyP6kEI-y_W3P8D26sz'

request = drive_service.files().get_media(fileId=file_id)
downloaded = io.BytesIO()
downloader = MediaIoBaseDownload(downloaded, request)
done = False
while done is False:
    # _ is a placeholder for a progress object that we ignore.
    # (Our file is small, so we skip reporting progress.)
    _, done = downloader.next_chunk()

downloaded.seek(0)
f = pickle.load(downloaded)

答案 3 :(得分:1)

谢谢大家的回答。 Google Colab已迅速成长为更加成熟的开发环境,而我最喜欢的功能是“文件”标签。

我们可以轻松地将模型上传到所需的文件夹中,就像在本地计算机上一样访问它。

这解决了这个问题。

谢谢。