数据准备
当文件数据含有大量数据时,无法一次性加载到内存中,需要分批次操作训练数据。
- 自定义文件读取器(生成器)
- 在自定义文件读取器基础上包装随机读取器
- 在随机读取器基础上包装文件数据批读取器
import numpy as np
import paddle
# 自定义reader_creator,从文本中读取一行数据
def reader_creator(filepath):
def reader():
with open(filepath, 'r') as f:
lines = f.readlines()
for line in lines:
yield line
return reader
reader = reader_creator('./car.txt')
# for line in reader():
# print(line, end='')
# 从上一个reader中随机方式读取数据
shuffle_reader = paddle.reader.shuffle(reader,
10 # 每10个样本打乱一次
)
# for line in shuffle_reader():
# print(line, end='')
# 从上一个随机读取器中分批次读取数据
batch_reader = paddle.batch(shuffle_reader,
4 # 批次大小
)
# for lines in batch_reader():
# print(lines, '')