CoLab Доступ к файлам - PullRequest
       11

CoLab Доступ к файлам

0 голосов
/ 06 декабря 2018

Здорово, что я могу запускать ноутбуки Jupyter в CoLab, но я схожу с ума, сохраняя и загружая файлы.Например, я пишу задание для своего курса и включаю в него цифры, используя тег HTML.(Я хочу использовать HTML вместо изображений с разметкой, чтобы я мог установить ширину.) Таким образом, в текстовой ячейке у меня есть

<img src="CoLab04.png" width="250">

Это прекрасно работает, когда я запускаю ноутбук Jupyter на своем ноутбуке, но в CoLab, он не может найти изображение , даже если изображение находится в той же папке CoLab, что и файл ipynb .Err.

У меня похожие проблемы с сохранением файлов данных.На моем ноутбуке я могу использовать обычные функции Python open, write, close и т. Д. Этот код работает без нареканий, но файлы не отображаются на Google Диске.Не находится в папке CoLab или любой другой папке, когда я ищу все на моем Google Диске.Err.Я читаю TFM и использую

from google.colab import drive, files
drive.mount('/content/gdrive')
fig.savefig("LED12.png") # saves a figure as a file
files.download("LED12.png")

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

Я что-то упустил?Почему так сложно создавать и читать файлы Google Диска, используя блокнот Google-CoLab jupyter?

Я прочитал https://colab.research.google.com/notebooks/io.ipynb, но почему это так сложно?Мне нужно что-то простое для начинающих студентов.Если чтение и запись файлов сопряжены с трудностями, я должен рекомендовать своим студентам установить jupyter на свои ноутбуки и не использовать CoLab.

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Я делал это в Colab (читая, тренируя мою модель и загружая мою обученную модель) несколько дней назад.Давайте сделаем это просто.Пожалуйста, сделайте следующие шаги.Я пытаюсь охватить оба (чтение csv, а также выгрузка файла).

Шаг 1: Перейдите на свой диск Google и создайте папку: Colab ихраните свои файлы в папке Colab.

Шаг 2: Теперь установите pydrive в записную книжку Colab jupyter

!pip install pydrive

Шаг 3: Выполните следующеекоманды для доступа к Google Диску Файл

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

Шаг 4: Монтирование диска (Здесь вы получите ссылку в оболочке Colab Jupyter. Нажмите на созданную ссылку и подтвердите свой диск Google (Просто скопируйтеи вставьте сгенерированный код))

from google.colab import drive
drive.mount('/content/drive/')

Шаг 5: Проверьте подлинность и создайте клиент PyDrive.Здесь сделайте то же самое, что и шаг 4 (нажмите на созданную ссылку и подтвердите свой диск Google (просто скопируйте и вставьте сгенерированный код))

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

Шаг 6: Чтобы получить файл,замените идентификатор на идентификатор (идентификатор вашего файла) файла, к которому вы хотите получить доступ.Для меня это был CSV файл.Чтобы получить идентификатор, перейдите, чтобы поделиться и создать ссылку.вы найдете что-то вроде: https://drive.google.com/file/d/xxxxxxxxxxxxxx/view?usp=sharing. Поместите его (xxxxxxxxxxxxxx) ниже и сделайте то же самое, сколько файлов вы хотите прочитать.

normal_1 = drive.CreateFile({'id':'13AR0sS1pndF0fTxmdjQRv_1Bv5aBNpkT'}) 
normal_1.GetContentFile('normal_1.csv')

normal_2 = drive.CreateFile({'id':'1Z0DO8M1Qco07kyVoxYSgxXBx6XYGBzJd'}) 
normal_2.GetContentFile('normal_2.csv')

abnormal = drive.CreateFile({'id':'12zFHDXVjreorRrHHhYrA1n82VQLuawsl'}) 
abnormal.GetContentFile('abnormal.csv')

Шаг 7: Теперь вы можете читать эти файлы и загружать их в кадр данных для дальнейшего использования.

normal_1 = pd.read_csv('normal_1.csv', skiprows = np.arange(100, normal_1.shape[0])) 
normal_2 = pd.read_csv('normal_2.csv', skiprows = np.arange(100, normal_2.shape[0])) 
abnormal = pd.read_csv('abnormal.csv', skiprows = np.arange(50, abnormal.shape[0])) 

Шаг 8: Сохраните модель на диск после обучения вашей модели: Используйте joblib

from sklearn.externals import joblib
filename = 'model.sav'
joblib.dump(clf, filename)

# Upload model to you google drive
model_file = drive.CreateFile({'title' : 'model.sav'})
model_file.SetContentFile('model.sav')
model_file.Upload()

Теперь перейдите к диску My и обновите его.Вы найдете что-то "model.sav".Полный код в файле блокнота jupyter вы можете найти по моей ссылке github .Я надеюсь, что это поможет вам решить вашу проблему.

0 голосов
/ 01 мая 2019

Мне кажется, это проблема sys.path.

После того, как вы смонтируете My Drive по следующему коду

from google.colab import drive
drive.mount('/content/drive/')

, ваш основной диск Google можно будет прочитать с помощью

!ls /content/drive/My Drive/

Если у вас есть подпапка под My Drive, в которой вы хотите централизовать свой проект colab, допустим, у вас есть папка projectA в основном каталоге Google Drive.Вы можете добавить путь к папке projectA к sys.path

import sys
sys.path.append("/content/drive/My Drive/projectA")

Тогда вы сможете сохранить свой рис так же, как вы использовали его в корневом пути локального компьютера.Файл будет сохранен в вашей папке projectA, в которой вы запускаете свой код colab.

fig.savefig("LED12.png")

Вы должны увидеть этот файл.Если это не работает, попробуйте использовать абсолютный путь при выполнении open, save, close и т. Д. Чувствительная к пути операция:

working_path = '/content/drive/My Drive/projectA'
fig.savefig(os.path.join(working_path, "LED12.png"))
0 голосов
/ 06 декабря 2018

Может быть проще загрузить записные книжки из GitHub, где ссылки на изображения в том же хранилище будут загружаться более интуитивно.

Например, записная книжка ниже загружает набор изображений, связанных в своем хранилище GitHub.

https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/05.01-What-Is-Machine-Learning.ipynb

Ссылка на уценку для первого графика:

![](figures/05.01-classification-1.png)
[figure source in Appendix](06.00-Figure-Code.ipynb#Classification-Example-Figure-1)

Это соответствует репозиторию GitHub здесь: https://github.com/jakevdp/PythonDataScienceHandbook/

Построение наВ этом примере распространенным шаблоном для объединения файлов данных является добавление команды !git clone ... в верхней части записной книжки, чтобы вывести весь репо за один раз.

Причина, по которой это проще сделать в GitHub, чемDrive - это то, что GitHub имеет унифицированные ACL на уровне хранилища, тогда как Drive управляет ACL на уровне файлов.Таким образом, было бы немного обременительно иметь общий доступ к блокноту Drive, который ссылался на изображения или другие файлы Drive, которые не были переданы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...