Как импортировать и читать полку или файл Numpy в Google Colaboratory?

У меня есть file.npy, и я хочу загрузить его в блокнот Google Colaboratory. Я уже знаю, что должен загрузить файл с Google Диска, однако понятия не имею, как это сделать.

Любая помощь приветствуется


person Saeed    schedule 09.11.2017    source источник


Ответы (3)


Загрузите файл в Colaboratory Notebook, указав следующее:

from google.colab import files
uploaded = files.upload()

Затем вы можете получить содержимое вашего файла из объекта uploaded, а затем записать его в файл:

with open("my_data.h5", 'w') as f:
    f.write(uploaded[uploaded.keys()[0]])

Если вы запустите:

!ls

вы увидите файл my_data.h5 в текущем каталоге.

Это метод, который работал для меня. Надеюсь, поможет.

person mikazuki    schedule 15.11.2017
comment
Это было очень полезно для меня. Спасибо :) - person Abdelwahed; 17.01.2018

На самом деле, вы можете напрямую загружать и скачивать локальные файлы.

В пример блокнота ввода/вывода

Первая ячейка показывает загрузку локального файла:

from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))
person Bob Smith    schedule 10.11.2017

Загрузка файлов и папок, содержащих вложенные папки и файлы (изображения), Colab google:
Попробуйте эту функцию, чтобы загрузить файлы и папки в Colab google:

from google.colab import files
import zipfile, io, os

    def read_dir_file(case_f):  # case_f = 0 for uploading one File and case_f = 1 for uploading one Zipped Directory
        uploaded = files.upload()    # to upload a Full Directory, please Zip it first (use WinZip)
        for fn in uploaded.keys():
            name = fn  #.encode('utf-8')
            #print('\nfile after encode', name)
            #name = io.BytesIO(uploaded[name])
        if case_f == 0:    # case of uploading 'One File only'
            print('\n file name: ', name)
            return name
        else:   # case of uploading a directory and its subdirectories and files
            zfile = zipfile.ZipFile(name, 'r')   # unzip the directory 
            zfile.extractall()
            for d in zfile.namelist():   # d = directory
                print('\n main directory name: ', d)
                return d
    print('Done!')

1- Чтобы загрузить один файл:

fileName = read_dir_file(0)

Если файл, который вы собираетесь загрузить, является файлом .csv, то:

import pandas as pd
df = pd.read_csv(fileName)
df.head()

Таким же образом можно прочитать любой файл в другом формате.

2- Чтобы загрузить полный каталог с подкаталогами и файлами: сначала заархивируйте каталог, используя один zip, и используйте:

dirName = read_dir_file(1)

Затем вы можете работать с (dirName) в качестве корневого каталога, например, если он имеет 3 подкаталога, скажем, (обучение, проверка и тестирование):

train_data_dir = dirName + 'training'  
validation_data_dir = dirName + 'validation'  
test_data_dir = dirName + 'test' 

Вот оно! Наслаждаться!

person Community    schedule 24.03.2018
comment
Вы пробовали это в каталоге обучающих изображений (скажем, тысячи для обучения, тестирования, оценки)? jpeg уже заархивированы, поэтому они не будут сильно заархивированы, и кажется, что вам нужно делать это каждый раз, когда вы открываете блокнот Colab, потому что данные не сохраняются. Похоже, что Colab не поставляется с постоянным диском. Очень раздражает, и для проектов ML, особенно проектов DL, включающих тысячи или десятки тысяч изображений, это непригодно для использования ... копирование данных занимает несколько часов, и вам приходится делать это каждый раз, когда вы открываете блокнот. - person Kai; 17.04.2018
comment
Спасибо за ваш вопрос, я не пробовал загружать такое большое количество данных, но я согласен с вами, что загрузка займет очень много времени. У вас есть какие-нибудь подсказки, чтобы решить это? спасибо. - person Yasser M; 17.04.2018
comment
нет решения, о котором я знаю. Вы должны копировать данные каждый раз, когда открываете блокнот. Я думаю (надеюсь), что данные могут сохраняться в течение 12 часов (это предел использования виртуального экземпляра для Colab), но я этого не проверял. - person Kai; 18.04.2018