Tensorflow2.0入门-简单线性回归模型

Tensorflow深度学习 2.3 线性模型实战

这里采用w=1.477,b=0.089的线性模型,即y=1.477x + 0.089,来进行数据采样。给模型添加随机噪声eps,服从均值为0,标准差为0.1的高斯分布(正太分布):

y=1.477x + 0.089 + eps.

数据采样代码:

import numpy as np

# 创建列表,用于保存采集得到的样本
data = []

for i in range(100):
    x = np.random.uniform(-10., 10.) # 随机采样输入x
    
    #采样高四噪声
    eps = np.random.normal(0.,0.01)
    
    y = 1.477 * x + 0.089 + eps
    
    data.append([x, y])
    
data = np.array(data) #转为2D Numpy数组
data

计算误差代码:

计算在每个点(x_{_{i}}y_{i})处的预测值与真实值之间的差的平方在累加,从而获得训练集上的均方误差损失值。

def mse(b, w, points):
    
    # 根据当前的w, b参数计算均方差损失
    totalLoss = 0
    
    for i in range(0, len(points)): # 循环迭代所有点
        
        x = points[i, 0] #points中 每个元素都是一个数组(x,y), i表示points中的第几个元素,0代表该元素的第一个值,即x值
        
        y = points[i, 1] # 同理,1代表第i个元素的第二个值,即y
        
        # 计算差的平方和
        
        totalLoss += (y - (w * x + b)) ** 2
        
    
    # 将累加的误差求平均,得到均方差    
    return totalLoss/ len(points)

 

计算梯度代码:

如图 所示, 𝑓(𝑥, 𝑦) = −(cos2 𝑥 + cos2 𝑦)2,图中𝑥𝑦平面的红色箭头的长度表示梯度向量的模,箭头的方向表示梯度向量的方向。可以看到,箭头的方向总是指向当前位置函数值增速最大的方向,函数曲面越陡峭,箭头的长度也就越长,梯度的模也越大。
 

<

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值