[Малый тестовый нож PaddleFluid] Упражнение 1 · Линейный фитинг DNN
Описание PaddlePaddle
- PaddlePaddle — это платформа глубокого обучения с открытым исходным кодом, предоставляемая Baidu, которая позволяет разработчикам и предприятиям безопасно и быстро реализовывать свои идеи ИИ.
- Команда проекта объединяет ведущих мировых ученых в области глубокого обучения, стремящихся предоставить лучший опыт исследований и разработок в области глубокого обучения для разработчиков и предприятий.
- Сама структура имеет четыре характеристики: простота в освоении, простота в использовании, безопасность и эффективность.Это наиболее подходящий инструмент глубокого обучения для китайских разработчиков и предприятий.
code
#加载库
import paddle.fluid as fluid
import numpy
#定义数据
train_data=numpy.array([[1.0],[2.0],[3.0],[4.0]]).astype('float32')
y_true = numpy.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')
l1 = fluid.layers.fc(input=x,size=2,act="relu")
y_predict = fluid.layers.fc(input=l1,size=1,act=None)
#定义损失函数
avg_cost = fluid.layers.mean(fluid.layers.square_error_cost(input=y_predict,label=y))
#定义优化方法
sgd_optimizer = fluid.optimizer.Adam(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(1,2001):
outs = exe.run(
feed={'x':train_data,'y':y_true},
fetch_list=[y_predict.name,avg_cost.name])
if(i%100 == 0):
#输出loss
print(i," steps Loss is",outs[1])
#观察结果
print("Final Pre \n",outs[0])
out
(paddle) C:\Files\DATAs\prjs\python\paddle\demo>C:/Files/APPs/RuanJian/Miniconda3/envs/paddle/python.exe c:/Files/DATAs/prjs/python/paddle/demo/liner.py
100 steps Loss is [19.995567]
200 steps Loss is [1.1098802]
300 steps Loss is [0.4495614]
400 steps Loss is [0.31467533]
500 steps Loss is [0.1992905]
600 steps Loss is [0.11252441]
700 steps Loss is [0.05591184]
800 steps Loss is [0.02425095]
900 steps Loss is [0.00916326]
1000 steps Loss is [0.00302502]
1100 steps Loss is [0.0008769]
1200 steps Loss is [0.00022424]
1300 steps Loss is [5.0713417e-05]
1400 steps Loss is [1.0143418e-05]
1500 steps Loss is [1.7896114e-06]
1600 steps Loss is [2.7729777e-07]
1700 steps Loss is [3.7570317e-08]
1800 steps Loss is [4.49603e-09]
1900 steps Loss is [4.896634e-10]
2000 steps Loss is [6.7430506e-11]
Final Pre
[[2.0000126]
[4.0000057]
[5.999998 ]
[7.9999914]]