paddlepaddle|paddlepaddle操作(一)

  • 【paddlepaddle|paddlepaddle操作(一)】三个在重要术语:
    Fluid:定义程序执行流程
    Program:对用户来说一个完整的程序
    Executor:执行器,执行程序
张量:
张量(Tensor):多维数组或向量,同其它主流深度学习框架一样,PaddlePaddle使用张量来承载数据
Layer:
表示一个独立的计算逻辑,通常包含一个或多个operator(操作),如layers.relu表示ReLU计算; layers.pool2d表示pool操作。Layer的输入和输出为Variable。
Variable:
表示一个变量,可以是一个张量(Tensor),也可以是其它类型。Variable进入Layer计算,然后Layer返回Variable。创建变量方式:
paddlepaddle|paddlepaddle操作(一)
文章图片

program:
Program包含Variable定义的多个变量和Layer定义的多个计算,是一套完整的计算逻辑。从用户角度来看,Program是顺序、完整执行的。
Executor:
Executor用来接收并执行Program,会一次执行Program中定义的所有计算。通过feed来传入参数,通过fetch_list来获取执行结果。
paddlepaddle|paddlepaddle操作(一)
文章图片

place:
PaddlePaddle可以运行在lntel CPU,Nvidia GPU,ARM CPU和更多嵌入式设备上,可以通过Place用来指定执行的设备(CPU或GPU)。
paddlepaddle|paddlepaddle操作(一)
文章图片

optimizer:
优化器,用于优化网络,一般用来对损失函数做梯度下降优化,从而求得最小损失值
程序的执行过程:
paddlepaddle|paddlepaddle操作(一)
文章图片

数据准备
什么是数据准备:
数据准备是指将样本数据从外部(主要指文件)读入,并且按照一
定方式(随机、批量)传递给神经网络,进行训练或测试的过程数据准备包含三个步骤:
第一步:自定义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结构图:
paddlepaddle|paddlepaddle操作(一)
文章图片

    推荐阅读