我准备了数据集。 我的数据集信息:
200x200 px RGB images
Jpg files
Class num 4
如何加载和训练我的数据集?我如何像cifar100数据那样增加,分离等?
答案 0 :(得分:0)
您是否尝试将其加载到您的Google驱动器,然后在colab上安装Google驱动器?
将您的数据上传到您的Google驱动器。 要将驱动器安装在colab上,请在colab笔记本中运行以下命令:
from google.colab import drive
drive.mount("/content/gdrive", force_remount=True)
然后,您可以像在本地计算机上一样使用数据。数据路径如下:/content/gdrive/My\ Drive/...
答案 1 :(得分:0)
一个简单的方法是,首先,像这样组织你自己的数据集的文件夹结构:
Dataset/
---- 0/
-------- img1.jpg
-------- img2.jpg
-------- ...
---- 1/
-------- img3.jpg
-------- img4.jpg
-------- ...
---- 2/
-------- img5.jpg
-------- img6.jpg
-------- ...
---- 3/
-------- img7.jpg
-------- img8.jpg
-------- ...
其中 '0 /'
、'1 /'
、'2 /'
和 '3 /'
是您的 4 个类的名称。
将 Dataset 文件夹压缩为 .zip
格式,然后将 Dataset.zip 文件上传到您的 Google Drive
。
现在,在您在 Google Colab 中的 .ipynb
文件中:
导入一些库:
import zipfile
from google.colab import output
from google.colab import drive
import os
import cv2 as cv
import numpy as np
from sklearn.model_selection import train_test_split
安装 Google Drive 以快速、负责任地访问文件:
drive.mount('/content/gdrive')
解压 Dataset.zip:
DATASET_PATH = '/content/gdrive/My Drive/Dataset.zip'
zip_object = zipfile.ZipFile(file = DATASET_PATH,mode = 'r')
zip_object.extractall('./')
zip_object.close
选择用于加载数据集和设置维度的源文件夹:
DATASET = 'Dataset/'
IMAGE_HEIGHT = 200
IMAGE_WIDTH = 200
实现帮助功能以从文件夹创建数据集:
def create_dataset(DATASET_PATH):
img_data_array = []
class_name = []
for directory in os.listdir(DATASET_PATH):
for file in os.listdir(os.path.join(DATASET_PATH, directory)):
image_path = os.path.join(DATASET_PATH, directory, file)
image = cv.imread(image_path, cv.COLOR_BGR2RGB)
image = cv.resize(image, (IMAGE_HEIGHT, IMAGE_WIDTH), interpolation = cv.INTER_AREA)
image = np.array(image)
image = image.astype('float32')
image /= 255
img_data_array.append(image)
class_name.append(directory)
return img_data_array, class_name
调用帮助功能:
DATA_IMAGES, DATA_LABELS = create_dataset(DATASET)
为类的所有唯一值创建一个字典:
target_dict = {k: v for v, k in enumerate(np.unique(DATA_LABELS))}
根据字典转换成各自的数值:
DATA_LABELS = [target_dict_train[DATA_LABELS[i]] for i in range(len(DATA_LABELS))]
PS:从本教程中提取的帮助功能:
使用 train_test_split
将数据集拆分为随机训练集和测试集:
X_train, X_test, y_train, y_test = train_test_split(DATA_IMAGES,
DATA_LABELS,
test_size = 0.15,
random_state = 41)
其中 test_size
表示要包含在测试拆分中的数据集的比例,random_state
控制在应用拆分之前应用于数据的混洗。
现在您拥有自己的数据集作为深度学习模型的输入。
关于数据增强,我推荐阅读本教程,您可以从中提取一些见解: