Colab google:在多个子目录中上传图片:
如果您想通过 Colab google 上传多个子目录中的图片(或文件),请按照以下步骤操作:
- 我假设您的图像(文件)在名为(dataDir)的主目录中分为 3 个子目录(训练、验证、测试):
1- 将文件夹 (dataDir) 压缩到 (dataDir.zip)
2- 在 Colab 单元格中编写此代码:
from google.colab import files
uploaded = files.upload()
3- 按“选择文件”并将 (dataDir.zip) 从您的 PC 上传到 Colab
现在(dataDir.zip)已上传到您的谷歌驱动器!
4- 让我们通过编写以下简单代码将文件夹(dataDir.zip)解压缩到名为(data)的文件夹:
import zipfile
import io
data = zipfile.ZipFile(io.BytesIO(uploaded['dataDir.zip']), 'r')
data.extractall()
5- 现在一切准备就绪,让我们通过打印(数据)文件夹的内容来检查:
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- 就是这样!享受吧!