分批读取训练数据进行训练
程序员文章站
2024-01-30 20:05:10
训练集数据量过大受设备内存影响不能将全部数据直接放到网络中进行训练,需要分批读取训练数据。train_x为训练集地址,train_y为训练集标签,val_X为验证集数据,val_y为验证集标签。分批读取函数如下:def dataset_split(images, labels, batch_size): while 1: i = 0 n = math.ceil(len(images)/batch_size) print(n)...
训练集数据量过大受设备内存影响不能将全部数据直接放到网络中进行训练,需要分批读取训练数据。
train_x为训练集地址,train_y为训练集标签,val_X为验证集数据,val_y为验证集标签。
分批读取函数如下:
def dataset_split(images, labels, batch_size):
while 1:
i = 0
n = math.ceil(len(images)/batch_size)
print(n)
for j in range(n):
if j != n-1:
x = images[i : i + batch_size]
y = labels[i : i + batch_size]
i = i + batch_size
X = []
for m in range(len(x)):
a = cv2.imread(x[m])
#print(type(a))
a = a.tolist()
#print(type(a))
X.append(a)
X = np.array(X)
yield X, y
if j == n-1:
x = images[len(images)-batch_size: ]
y = labels[len(labels)-batch_size: ]
X = []
for m in range(len(x)):
a = cv2.imread(x[m])
a = a.tolist()
X.append(a)
X = np.array(X)
yield X, y
model.fit_generator(dataset_split(train_x, train_y, batch_size),
validation_data=(val_X, val_y), steps_per_epoch=
(len(train_x) // batch_size), epochs=EPOCHS,
verbose=2, callbacks=[csv_logger, checkpointer])
本文地址:https://blog.csdn.net/qq_21466543/article/details/107150645
上一篇: mybatis注解配置出现returned more than one row, where no more than one was expected
下一篇: Sql Server 常用的日期函数
推荐阅读
-
分批读取训练数据进行训练
-
SDUT---OJ《数据结构与算法》实践能力专题训练3 栈与队列
-
darknet-yolov3训练自己的数据
-
tf.kerasr入门示例:Lenet手写字符分类(2扩展) eager模式下Sequence生成器方式加载数据并训练
-
制作用于图像语义分割训练的标签数据【图像分割】【labelme】
-
华为watch GT 2如何设置呼吸训练?华为watch GT 2进行呼吸训练的方法介绍
-
detectron2训练自己的数据实现目标检测和关键点检测(一) ubuntu18.04安装测试detectron2
-
caffe使用命令行方式训练预测mnist、cifar10及自己的数据集
-
pytorch 如何使用amp进行混合精度训练
-
基于keras训练的h5模型进行批量预测