В моем Jupyter Notebook есть следующий код для загрузки изображения в Colab:
from google.colab import files
uploaded = files.upload()
Мне предлагается ввести файл. Который загружается.
Я проверяю, что загрузка файла прошла успешно, используя:
!ls
и вижу, что он там есть.
Я проверяю текущий рабочий каталог, используя:
import os
os.getcwd()
и это говорит мне, что это /content
теперь, любой из следующих вызовов...
cv2.imread(img_path, 1)
cv2.imread(img_path, 0)
cv2.imread(img_path)
не удается загрузить файл.
Они также не работают независимо от того, использую ли я только имя файла или полный путь.
Есть мысли о том, что происходит?
Используйте эту функцию для загрузки файлов. Она также сохранит их.
def upload_files():
from google.colab import files
uploaded = files.upload()
for k, v in uploaded.items():
open(k, 'wb').write(v)
return list(uploaded.keys())
Теперь (сентябрь 2018 года) на левой панели есть вкладка "Файлы", которая позволяет просматривать и загружать файлы. Вы также можете загружать файлы, просто дважды щелкнув по именам файлов.
Colab google: загрузка изображений в несколько подкаталогов:. Если вы хотите загрузить изображения (или файлы) в несколько поддиректорий с помощью Colab google, пожалуйста, выполните следующие шаги:
Предположим, что ваши изображения (файлы) разделены на 3 поддиректории (train, validate, test) в основной директории под названием (dataDir): 1- Запилите папку (dataDir) в (dataDir.zip). 2- Запишите этот код в ячейку Colab:
from google.colab import files uploaded = files.upload()
3- Нажмите на 'Choose Files' и загрузите (dataDir.zip) с вашего ПК в Colab. Теперь (dataDir.zip) загружен на ваш google drive! 4- Давайте распакуем папку (dataDir.zip) в папку под названием (data), написав этот простой код:
import zipfile
import io
data = zipfile.ZipFile(io.BytesIO(uploaded['dataDir.zip']), 'r')
data.extractall()
5- Теперь все готово, давайте проверим это, распечатав содержимое папки (data):
data.printdir()
6- Затем, чтобы прочитать изображения, посчитать их, разделить их и поиграть с ними, пожалуйста, напишите следующий код:
train_data_dir = 'data/training'
validation_data_dir = 'data/validation'
test_data_dir = 'data/test'
target_names = [item for item in os.listdir(train_data_dir) if os.path.isdir(os.path.join(train_data_dir, item))]
nb_train_samples = sum([len(files) for _, _, files in os.walk(train_data_dir)])
nb_validation_samples = sum([len(files) for _, _, files in os.walk(validation_data_dir)])
nb_test_samples = sum([len(files) for _, _, files in os.walk(test_data_dir)])
total_nb_samples = nb_train_samples + nb_validation_samples + nb_test_samples
nb_classes = len(target_names) # number of output classes
print('Training a CNN Multi-Classifier Model ......')
print('\n - names of classes: ', target_names, '\n - # of classes: ', nb_classes)
print(' - # of trained samples: ', nb_train_samples, '\n - # of validation samples: ', nb_validation_samples,
'\n - # of test samples: ', nb_test_samples,
'\n - total # of samples: ', total_nb_samples, '\n - train ratio:', round(nb_train_samples/total_nb_samples*100, 2),
'\n - validation ratio:', round(nb_validation_samples/total_nb_samples*100, 2),
'\n - test ratio:', round(nb_test_samples/total_nb_samples*100, 2),
' %', '\n - # of epochs: ', epochs, '\n - batch size: ', batch_size)
7- Вот и все! Наслаждайтесь!
Я предполагаю, что вы могли записать файл не из памяти?
Попробуйте использовать приведенный ниже код после загрузки:
with open("wash care labels", 'w') as f:
f.write(uploaded[uploaded.keys()[0]])
замените "этикетки для стирки.xx" на имя вашего файла. Это запишет файл из памяти. затем попробуйте вызвать файл.
Надеюсь, это сработает.