Python Keras导入训练集验证集测试集,并进行数据预处理

Python013

Python Keras导入训练集验证集测试集,并进行数据预处理,第1张

import os

import numpy as np

from tqdm import tqdm #进度条

from glob import glob

from scipy import ndimage

from keras.preprocessing.image import ImageDataGeneratior

import keras

img_size = 255 # 自行更改

train_path = r'D:\CVML\Project\Heartchallenge_sound\Peter_HeartSound\Train_Valid_Test\train'

num_train = len( glob (train_path + r'**.jpg') ) #图片数量

x_train = np.zeros( (num_train, img_size, img_size, 3), dtype=np.uint8) #训练集

y_train = np.zeros( (num_train,), dtype=np.uint8) #训练集label

i=0

for img_path in tqdm( glob(train_path + r'**.jpg) ):

datagen = ImageDataGenerator(rescale = 1.0/255.0, featurewise_center = True, featurewise_std_normalization= True)

datagen.fit(x_train) #图片预处理

待解决问题: 如何输入??

准备好图像样本和标注文件后,需对样本集进行划分,生成训练集、验证集和测试集

我的目录结构:

将样本按 training : validation : testing = 8:1:1,实现在images和labels同级目录下创建文件夹train,val,test,将按比例生成的数据存放到相应的位置。

这是一个多元支持向量机回归的模型,以下是一个参考的实现代码:

import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svmfrom sklearn.metrics import r2_score

# 模拟数据

np.random.seed(0)

X = np.sort(5 * np.random.rand(80, 1), axis=0)

y = np.sin(X).ravel()

y[::5] += 3 * (0.5 - np.random.rand(16))

# 分割数据

train_X = X[:60]

train_y = y[:60]

test_X = X[60:]

test_y = y[60:]

# 模型训练

model = svm.SVR(kernel='rbf', C=1e3, gamma=0.1)

model.fit(train_X, train_y)

# 预测结果

pred_y = model.predict(test_X)# 计算R2r2 = r2_score(test_y, pred_y)

# 对比图

plt.scatter(test_X, test_y, color='darkorange', label='data')

plt.plot(test_X, pred_y, color='navy', lw=2, label='SVR model')

plt.title('R2={:.2f}'.format(r2))

plt.legend()

plt.show()

上面的代码将数据分为训练数据和测试数据,使用SVR模型对训练数据进行训练,然后对测试数据进行预测。计算预测结果与真实值的R2,最后将结果画出对比图,以评估模型的效果。