Итак, у вас есть такой набор данных
..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 под наблюдениемТаким образом, вам необходимо иметь помеченный набор данных в папке *
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
, чтобы получить аккуратный индикатор выполнения, показывающий ход операции, если набор данных настолько велик, что без индикатора выполнения будет больно знать о ходе выполнения, оставшемся времени и т. Д.