所以你有一个这样的数据集
..train/
../img1.jpg
../img2.jpg
../img3.jpg
..........
../imgn.jpg
..test/
../test1.jpg
../test2.jpg
../test3.jpg
............
../testn.jpg
另外,您有一个 train.csv 文件,其中包含这样的数据
file_name label
img1.jpg 0
img2.jpg 0
img3.jpg 1
img4.jpg 1
.......
.......
imgn.jpg 0
为了以监督的方式训练一个 CNN 模型,你需要在 from 中有一个标记的数据集
image1 - label1
image2 - label2
image3 - label3
image4 - label4
在您的/train/ 文件夹中,您有图像,它们的相应标签在train.csv 文件中提供。
因此,您必须从\train\ 文件夹中加载图像数据,并从csv 文件中加载相应的标签。
在 python 中,假设您的图像是.jpg,您可以像这样轻松地做到这一点,
import cv2
import pandas as pd
import numpy as np
from tqdm import tqdm
# function to read image using opencv
def read_img(img_path):
img = cv2.imread(img_path, cv2.IMREAD_COLOR)
img = cv2.resize(img, (300, 300))
return img
# path for the folder with train images
TRAIN_PATH = 'train_img/'
# reading train.csv file
train = pd.read_csv('train.csv')
# reading the image data
train_img = []
for img_path in tqdm(train['file_name'].values):
train_img.append(read_img(TRAIN_PATH + img_path + '.jpg'))
# assigning labels from the csv file
train_label = train['label'].tolist()
我使用tqdm得到一个简洁的进度条来指示操作的进度,如果数据集太大,没有进度条知道进度、剩余时间等会很痛苦。