[PaddleFluid小试牛刀]练习一·DNN线性拟合

56 篇文章 2 订阅
9 篇文章 0 订阅

[PaddleFluid小试牛刀]练习一·DNN线性拟合

PaddlePaddle介绍

  • PaddlePaddle是百度提供的开源深度学习框架,它能够让开发者和企业安全、快速地实现自己的AI想法
  • 项目团队汇聚了全球顶级的深度学习科学家,致力于为开发者和企业提供最好的深度学习研发体验
  • 框架本身具有易学、易用、安全、高效四大特性,是最适合中国开发者和企业的深度学习工具

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]]
Matlab是一种广泛使用的数值计算和编程语言,可以用于各种任务,包括深度神经网络(DNN)的拟合。DNN是一种强大的机器学习算法,可以用于解决各种问题,如图像分类、语音识别等。 在Matlab中,可以使用深度学习工具箱(Deep Learning Toolbox)来构建和训练DNN模型。首先,我们需要定义模型的架构,包括输入层、隐藏层和输出层。然后,可以使用反向传播算法(Backpropagation)来训练模型,通过不断调整神经元之间的连接权重和阈值,使模型逐渐拟合训练数据。 在进行拟合之前,我们需要准备好训练数据集和测试数据集。训练数据集用于训练模型,测试数据集用于评估拟合效果。可以使用Matlab提供的数据预处理工具来对数据进行处理,例如归一化、标准化等。 在输入数据后,我们可以使用Matlab提供的DNN网络结构和训练函数来训练模型。可以选择不同的网络结构,如多层感知器(MLP)或卷积神经网络(CNN),以适应不同的拟合任务。在训练过程中,可以设置不同的参数,如学习率、迭代次数等,来优化模型的性能。 拟合结束后,我们可以使用测试数据集来评估模型的预测能力。可以计算预测值与真实值之间的误差,比如均方根误差(RMSE)或分类精度等指标。根据评估结果,我们可以进一步优化模型,比如调整网络结构、参数设置等,以提高拟合效果。 总之,使用Matlab进行DNN拟合需要定义模型架构、准备数据、训练模型和评估拟合效果等步骤。Matlab提供了丰富的功能和工具,可以帮助我们进行高效、准确的DNN拟合任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小宋是呢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值