百度飞浆paddlepaddle之简单线性回归(一)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
一.HelloWord

import paddle.fluid as fluid

#创建两个常量
x=fluid.layers.fill_constant(shape=[1], #张量的维度
                             dtype='int64', #类型
                             value=5) #值

y=fluid.layers.fill_constant(shape=[1], #张量的维度
                             dtype='int64', #类型
                             value=1) #值
# 定义计算规则
z=x + y

#创建执行器
place=fluid.CPUPlace() #指定在CPU上运行
exe=fluid.Executor(place) #创建执行器
result=exe.run(fluid.default_main_program(),#执行
               fetch_list=[z]) #取出变量z的值

print(result[0][0])

二.两个张量计算

import paddle.fluid as fluid
import numpy  as np

#创建两个张量
x=fluid.layers.data(name='x',
                    shape=[1],
                    dtype='float32')

y=fluid.layers.data(name='y',
                    shape=[1],
                    dtype='float32')
#张量按元素相加
result=fluid.layers.elementwise_add(x,y)

#创建执行器
place=fluid.CPUPlace()
exe=fluid.Executor(place)
exe.run(fluid.default_startup_program())#初始化系统参数

a=np.array([[1,1,1],[2,2,2]])
b=np.array([[3,3,3],[4,4,4]])

params={"x":a,"y":b}
outs=exe.run(fluid.default_main_program(), #执行默认主程序
             feed=params, #喂入数据
             fetch_list=[result]) #获取result变量的值
for i in outs:
    print(i)
 ===============================
[[4 4 4]
 [6 6 6]]

三.简单线性回归
在这里插入图片描述
在这里插入图片描述

#简单线性回归
import paddle
import paddle.fluid as fluid
import numpy as np
import matplotlib.pyplot as mp

#1.定义数据
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")

#2.搭建网络(全连接网络、优化器)
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) #求均方差
#定义优化器
optimizer=fluid.optimizer.SGD(learning_rate=0.01) #随机梯度下降
#求最小化均方差
optimizer.minimize(avg_cost)
#3.执行训练
place=fluid.CPUPlace
exe=fluid.Executor(place) #执行器
exe.run(fluid.default_startup_program())#初始化系统参数

costs=[] #每一步的损失
iters=[] #迭代的次数
values=[] #预测值
params={"x":train_data,"y":y_true} #真实数据
for i in range(200):
    outs=exe.run(fluid.default_main_program(),
                 feed=params, #喂入数据
                 fetch_list=[y_predict,avg_cost.name])
    iters.append(i) #记录次数  可视化用
    values.append(outs[0][0]) #预测值
    costs.append(outs[1][0]) #损失值
    print(i,":",outs[1][0])#打印每一步的损失值
#4.训练过程可视化
mp.title('Training Cost',fontsize=24)  #注意  写figure是报错的
mp.xlabel('Iter',fontsize=14)
mp.ylabel('Cost',fontsize=14)
mp.plot(iters,costs,color="red",label="Training value")
mp.plot(iters,values,color="blue",label="Predict value")
mp.grid(linestyle=":")
mp.legend()
mp.show()
mp.savefig("train.png")  #偶尔图片不出来,用save又出来了

部分截图
在这里插入图片描述在这里插入图片描述
大概10多20多次基本趋于稳定了,所以后面的次数相当于白做了。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值