前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[PaddleFluid小试牛刀]练习二·DNN正弦函数拟合

[PaddleFluid小试牛刀]练习二·DNN正弦函数拟合

作者头像
小宋是呢
发布2019-06-27 14:12:39
1.2K0
发布2019-06-27 14:12:39
举报
文章被收录于专栏:深度应用深度应用

PaddleFluid小试牛刀练习二·DNN正弦函数拟合

上篇博文基础上做了些改进,拟合正弦曲线

  • 生成数据

code

代码语言:javascript
复制
from paddle import fluid as fl
import numpy as np
import matplotlib.pyplot as plt

def get_data(x):
    c,r = x.shape
    y = np.sin(x*3.14)+1+ (0.02*(2*np.random.rand(c,r)-1))
    return(y)

xs = np.arange(0,3,0.01).reshape(-1,1)
ys = get_data(xs)
xs = xs.astype('float32')
ys = ys.astype('float32')

"""plt.title("curve")
plt.plot(xs,ys)

plt.show()"""

out

  • 完整代码

code

代码语言:javascript
复制
from paddle import fluid as fl
import numpy as np
import matplotlib.pyplot as plt

def get_data(x):
    c,r = x.shape
    y = np.sin(x*3.14)+1+ (0.02*(2*np.random.rand(c,r)-1))
    return(y)

xs = np.arange(0,3,0.01).reshape(-1,1)
ys = get_data(xs)
xs = xs.astype('float32')
ys = ys.astype('float32')

"""plt.title("curve")
plt.plot(xs,ys)

plt.show()"""

x = fl.layers.data(name="x",shape=[1],dtype="float32")
y = fl.layers.data(name="y",shape=[1],dtype="float32")

l1 = fl.layers.fc(input=x,size=64,act="relu")
#l1 = fl.layers.fc(input=l1,size=16,act="relu")
pre = fl.layers.fc(input=l1,size=1)

loss = fl.layers.mean(
    fl.layers.square_error_cost(input=pre,label=y))

opt = fl.optimizer.Adam(0.1)
opt.minimize(loss)

exe = fl.Executor(
    fl.core.CPUPlace())
exe.run(fl.default_startup_program())

for i in range(1,4001):
    outs = exe.run(
        feed={x.name:xs,y.name:ys},
        fetch_list=[pre.name,loss.name])
    if(i%500==0):
        print(i," steps,loss is",outs[1])


plt.title("sin")
plt.plot(xs,ys)
plt.plot(xs,outs[0])
plt.show()

out

代码语言:javascript
复制
(paddle) C:\Files\DATAs\prjs\python\paddle\demo>C:/Files/APPs/RuanJian/Miniconda3/envs/paddle/python.exe c:/Files/DATAs/prjs/python/paddle/demo/sin.py
500  steps,loss is [0.09414934]
1000  steps,loss is [0.03732136]
1500  steps,loss is [0.01576269]
2000  steps,loss is [0.00068113]
2500  steps,loss is [0.01121321]
3000  steps,loss is [0.00206144]
3500  steps,loss is [0.00284895]
4000  steps,loss is [0.00058186]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PaddleFluid小试牛刀练习二·DNN正弦函数拟合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档