对训练数据的采样

import os
import cv2
import numpy as np

def get_batch(path,batch_size):
    #获取所有图片路径
    img_list = [os.path.join(path,i) for i in os.listdir(path)]
    #获取可以训练的批次数
    n_batchs = len(img_list)//batch_size
    #只保留可训练的整数倍张的图片
    img_list = img_list[:n_batchs*batch_size]
    #将这些训练数据分成一批次一批次的
    for i in range(n_batchs):
        #按顺序获取一个批次的数据路径
        tmp_img_list = img_list[i*batch_size:(i+1)*batch_size]
        # 将这批读取过来
        imgs = [cv2.imread(img) for img in tmp_img_list]
        #进行转换
        imgs = np.array(imgs)
        #构造一个生成器以便
        yield imgs

for imgs in get_batch('faces', 64):
    print(imgs)

猜你喜欢

转载自blog.csdn.net/weixin_38241876/article/details/90747289