Mi Jupyter Notebook tiene el siguiente código para subir una imagen a Colab:
from google.colab import files
uploaded = files.upload()
Se me pide el archivo. Que se carga.
Verifico que la carga de archivos se ha realizado correctamente utilizando:
!ls
y veo que está ahí.
Compruebo el directorio de trabajo actual utilizando:
import os
os.getcwd()
y me dice que es /content
ahora, cualquiera de las siguientes llamadas...
cv2.imread(img_path, 1)
cv2.imread(img_path, 0)
cv2.imread(img_path)
falla al cargar el archivo.
También fallan si i'm utilizando sólo el nombre del archivo o la ruta completa.
¿Alguna idea de lo que está pasando?
Utilice esta función para cargar archivos. También los GUARDARÁ.
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())
Ahora (sep 2018), el panel izquierdo tiene un "Archivos" ficha que le permiten navegar por los archivos y cargar archivos fácilmente. También puede descargar haciendo doble clic en los nombres de archivo.
Colab google: subir imágenes en múltiples subdirectorios: Si desea cargar imágenes (o archivos) en múltiples subdirectorios utilizando Colab google, por favor, siga los siguientes pasos:
Supongamos que sus imágenes (archivos) están divididas en 3 subdirectorios (train, validate, test) en el directorio principal llamado (dataDir): 1- Comprime la carpeta (dataDir) a (dataDir.zip) 2- Escribe este código en una celda Colab:
from google.colab import archivos uploaded = archivos.upload()
3- Pulsa en 'Choose Files' y sube (dataDir.zip) desde tu PC al Colab ¡Ahora el (dataDir.zip) está subido a tu google drive! 4- Descomprimamos la carpeta (dataDir.zip) en una carpeta llamada (data) escribiendo este sencillo código:
import zipfile
import io
data = zipfile.ZipFile(io.BytesIO(uploaded['dataDir.zip']), 'r')
data.extractall()
5- Ahora todo está listo, vamos a comprobar que mediante la impresión de contenido de (datos) carpeta:
data.printdir()
6- A continuación, para leer las imágenes, contarlas, dividirlas y jugar con ellas, escribe el siguiente código:
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- ¡Ya está! ¡Que lo disfrutes!
¿Supongo que no habrás escrito el archivo desde la memoria?
pruebe el siguiente código después de la carga:
with open("wash care labels", 'w') as f:
f.write(uploaded[uploaded.keys()[0]])
reemplazar "etiquetas de cuidado de lavado.xx" con el nombre de su archivo. Esto escribe el archivo de la memoria. a continuación, intente llamar al archivo.
Espero que esto funcione para usted.