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,最后将结果画出对比图,以评估模型的效果。