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结构图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rebirth-LSS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值