- 【paddlepaddle|paddlepaddle操作(一)】三个在重要术语:
Fluid:定义程序执行流程
Program:对用户来说一个完整的程序
Executor:执行器,执行程序
张量(Tensor):多维数组或向量,同其它主流深度学习框架一样,PaddlePaddle使用张量来承载数据
Layer:
表示一个独立的计算逻辑,通常包含一个或多个operator(操作),如layers.relu表示ReLU计算; layers.pool2d表示pool操作。Layer的输入和输出为Variable。
Variable:
表示一个变量,可以是一个张量(Tensor),也可以是其它类型。Variable进入Layer计算,然后Layer返回Variable。创建变量方式:
文章图片
program:
Program包含Variable定义的多个变量和Layer定义的多个计算,是一套完整的计算逻辑。从用户角度来看,Program是顺序、完整执行的。
Executor:
Executor用来接收并执行Program,会一次执行Program中定义的所有计算。通过feed来传入参数,通过fetch_list来获取执行结果。
文章图片
place:
PaddlePaddle可以运行在lntel CPU,Nvidia GPU,ARM CPU和更多嵌入式设备上,可以通过Place用来指定执行的设备(CPU或GPU)。
文章图片
optimizer:
优化器,用于优化网络,一般用来对损失函数做梯度下降优化,从而求得最小损失值
程序的执行过程:
文章图片
数据准备
什么是数据准备:
数据准备是指将样本数据从外部(主要指文件)读入,并且按照一
定方式(随机、批量)传递给神经网络,进行训练或测试的过程数据准备包含三个步骤:
第一步:自定义Reader生成训练/预测数据
第二步:在网络配置中定义数据层变量
第三步:将数据送入网络进行训练/预测
#自定义个文件读取,用python装饰器
import numpy
import paddle
def reader_creator(file_path):
def reader():
with open(file_path, "r") as f:
lines = f.readlines()
for line in lines:
yield line.replace("\n","")
return reader
reader = reader_creator("test.txt")#原始顺序的读取器
shuffle_reader = paddle.reader.shuffle(reader,10)#10是缓冲区的大小,随机读取器
batch_reader = paddle.batch(shuffle_reader,3)#随机批次读取器# for data in reader():
# for data in shuffle_reader():
for data in batch_reader():
print(data, end="")
模型的加载与保护
预测模型的加载与保存:
保存预测模型:
fluid.io.save_inference_model(dirname, feeded_var_names, target_vars, executor)
参数说明:
dirname(str):保存预测model的路径
feeded_var_names(list[str]):预测需要feed的数据
target_vars(list[Variable])︰保存预测结果的Variables
executor(Executor): executor保存inference model加载预测模型:
fluid.io.load_inference_model(dirname, executor)
参数说明:
dirname (str)一保存预测model的路径
executor(Executor)-运行模型的Executor
返回值说明:
Program :用于预测的Program
feed_target_names(str列表)︰预测Program中提供数据的变量的名称fetch_targets(Variable列表)︰存放预测结果
增量模型的保存与加载:
保存增量模型:
fluid.io.save_persistables(executor, dirname, main_program=None)
参数说明:
executor (Executor):保存变量的executor
dirname (str):保存模型的路径
main_program (ProgramNone):需要保存变量的Program。如果为None,则使用default_main_Program加载增量模型:
fluid.io.load_persistables(executor, dirname, main_program=None)
参数说明:
executor (Executor): 加载变量的executor
dirname(str):保存增量模型的路径
main_ program (ProgramNone):需要加载变量的 Program。如果为None,则使用default_main_Program
fluid API结构图:
文章图片
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- paddle|动手从头实现LSTM
- pytorch|使用pytorch从头实现多层LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- pytorch|YOLOX 阅读笔记
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- 前沿论文|论文精读(Neural Architecture Search without Training)