当前位置: 首页 > 工具软件 > Fluid > 使用案例 >

Fluid 编程方法

上官恩
2023-12-01

Fluid 编程方法

常用内容

1、创建模型的可学习参数,用Fluid中的Variable子类Parameter表示

w = fluid.layers.create_parameter(name=“w”,shape=[1],dtype=‘float32’)
但是Fluid大部分神经网络计算模块都提供了封装,不需要显示调用Parameter来调用

2、输入输出Tensor

使用fluid.layer.data来接收数据
b = fluid.layers.data(name=“image”,shape=[3,None,None],dtype=“float32”

3、Tensor常量

用户可以指定Tensor的形状、数据类型、常量值
data = fluid.layers.fill_constant(shape=[1], value=0, dtype=‘int64’)

编程流程

一、准备数据

1、自定义Reader生成训练/预测数据

根据生成的数据类型Numpy Array (多维的数组)或LoDTensor(多层序列数据格式)
根据返回数据的形式,Batch级的Reader(每次返回一个Batch数据),Sample级的Reader(每次返回单次样本的数据
)(数据预处理和组建batch工具,Python Reader)

2、将数据送入网络进行训练/预测

(1)数据格式Numpy Array和LoDTensor
a.同步Feed方式
fluid.layers.data配置数据输入层
fluid.Executor或者fluid.ParallesExecutor使用executor.run(feed=…)传入数据
(数据准备与预测的过程是同步进行的,效率低)
b.异步py_reader接口方式
fluid.layers.py_reader配置数据输入层
py_reader的decorate_paddle_reader或decorate_tensor_provider配置数据源
fluid.layers.read_file读取数据
(数据传入与模型训练/预测过程是异步进行的,效率高)

(2)数据格式Sample级Reader数据
a.组织数据
数据的预处理,调用Reader的接口
b.送入数据
Feed方式,用DataFeeder接口将Reader数据转换为LoDTensor格式送入网络
异步py_reader,调用decorate_paddle_reader接口

(3)数据格式Batch级Reader数据
a.组建数据
Batch结够数据已经组建好

b.送入数据
Feed同步
数据层配置fluid.layers.data()
传递给执行器 Executor.run和ParallelExecutor.run
异步 py_reader的decorate_tensor_provider接口调用

二、配置简单的网络

从逻辑层面进行建模
明确所需的输入类型、计算逻辑、求解目标以及优化算法

问题描述

例: 简单的回归模型,损失函数使用均方误差,选用简单的随机梯度下降算法求解模型

样本特征:13维 实数
输入数据类型:
样本标签:1维 实数

计算逻辑 使用线性模型,产生1为实数作为模型的预测输出

求解目标 最小化模型预测输出与样本标签间的均方误差

优化算法 随机梯度下降

一个典型的模型主要包含四个部分:输入格式定义/模型前向计算逻辑/损失函数/优化算法
数据层:
fluid.layers.data()

前向计算逻辑:
fluid.layers.op 表示算子类型
fluid.layers.fc 表示执行线性变换
fluid.layers.conv执行卷积变换
损失函数:
cost = fluid.layers.square_error_cost(input=y_predict, label=y)
avg_cost = fluid.layers.mean(cost)
优化算法:
sgd_optimizer = fluid.optimizer.SGD(learning_rate=0.001)

三、训练神经网络

1、进行模型配置
使用fluid.default_startup_program()与fluid.default_main_orogram()获得全局变量

2、初始化参数
a.参数随机初始化
使用fluid.Executor()运行,在全局fluid.global_scope()中随机初始化参数
b.载入预定义参数

3、单卡训练
fluid.Executor()中的run()方法,训练fluid.Program

4、多卡训练

四、模型评估

常用指标
二分类指标

 类似资料: