Bootstrap

paddlepadle的模型分类训练方式

其中,Fluid通过提供顺序、分支和循环三种执行结构的支持,让用户可以通过组合描述任意复杂的模型。

顺序执行
用户可以使用顺序执行的方式搭建网络:
x=fluid.layers.data(name='x',shape=[13],dtype='float32'
y_predict=fluid.layers.fc(input=x,size=1,act=None)
y=fluid.layers.data(name='y',shape=[1],dtype='float32')
cost=fluid.layers.square_error_cost(input=y_predict,label=y)

条件分支–switch,if else
Fluid 中有 switch 和 if-else 类来实现条件选择,用户可以使用这一执行结构在学习率调节器中调整学习率或其他希望的操作:
lr=fluid.layers.tensor.create_gloabl_var(
          shape=[1],
          value=0.0,
          dtype='float32',
          persistable=True,
          name="learning_rate")
 one_var=fluid.layers.fill_constant(
          shape=[1],dtype='float32',value=1.0)
 two_var=fluid.layers.fill_constant(
          shape=[1],dtype='float32',value=2.0)
 with fluid.layers.control_flow.Swith() as swith:
          with swith.case(global_step==zero_var):
              fluid.layers.tensor.assign(input=one_var,output=lr)

PaddlePaddle案例实战

1. 问题描述

在这里插入图片描述

2. 定义数据

在这里插入图片描述

3. 搭建网络

在这里插入图片描述

4. 添加损失函数

在这里插入图片描述

5. 网络优化

在这里插入图片描述
在这里插入图片描述

#加载库
import paddle.fluid as fluid
import numpy as np
#定义数据
train_data=np.array([[1.0],[2.0],[3.0],[4.0]]).astype('float32')
y_true=np.array([[2.0],[4.0],[6.0],[8.0]]).astype('float32')
#定义网络
x=fluid.layers.data(name='x',shape=[1],dtype='float32')
y=fluid.layers.data(name='y',shape=[1],dtype='float32')
y_predict=fluid.layers.fc(input=x,size=1,act=None)
#定义损失函数
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.01)
sgd_optimizer,minimize(avg_cost)
#参数初始化
cpu=fluid.core.CPUPlace()
exe=fluid.Executor(cpu)
exe.run(fluid.default_startup_program())
#开始训练,迭代100次
for i in range(100):
      out=exe.run(feed={'x':train_data,'y':y_true},
      fetch_list=[y_predict.name,avg_cost.name])
#观察结果
print(outs)


 

 

 

 

 

 

 

;