当前位置: 首页 > news >正文

江西鄱阳专业做网站seo优化工具软件

江西鄱阳专业做网站,seo优化工具软件,深圳知名网站,网站建站前seo注意02线性回归基础版 主要内容 数据生成:使用线性模型 ( y X*w b ) 加上噪声生成人造数据集。数据读取:通过小批量读取数据集来实现批量梯度下降,打乱数据顺序并逐批返回特征和标签。模型参数初始化:随机初始化权重和偏置&#x…

02线性回归基础版

主要内容

  1. 数据生成:使用线性模型 ( y = X*w + b ) 加上噪声生成人造数据集。
  2. 数据读取:通过小批量读取数据集来实现批量梯度下降,打乱数据顺序并逐批返回特征和标签。
  3. 模型参数初始化:随机初始化权重和偏置,并设置为可计算梯度。
  4. 模型定义:实现线性回归模型 ( y = X*w + b )。
  5. 损失函数:实现均方误差损失函数。
  6. 优化函数:实现小批量随机梯度下降用于更新模型参数。
  7. 模型训练:设定学习率和迭代次数,通过每个批量计算损失、反向传播和参数更新。
import random
import torch# 生成数据集
def synthetic_data(w, b, num_examples):"""生成 y = Xw + b + 噪声"""# torch.normal: 返回一个从均值为0,标准差为1的正态分布中提取的随机数的张量# 生成形状为(num_examples, len(w))的矩阵X = torch.normal(0, 1, (num_examples, len(w)))# torch.matmul: 矩阵乘法y = torch.matmul(X, w) + b# 添加噪声:torch.normal(0, 0.01, y.shape)y += torch.normal(0, 0.01, y.shape)# reshape: 只改变张量的视图,不改变数据,将y转换为列向量return X, y.reshape((-1, 1))# 定义真实的权重和偏置
true_w = torch.tensor([2, -3.4])
true_b = 4.2
# 生成特征和标签
features, labels = synthetic_data(true_w, true_b, 1000)# 读取数据集
def data_iter(batch_size, features, labels):num_examples = len(features)# 生成一个从0到num_examples-1的整数列表indices = list(range(num_examples))# 将列表的次序打乱random.shuffle(indices)# 每次迭代生成一个小批量数据for i in range(0, num_examples, batch_size):batch_indices = torch.tensor(indices[i:min(i + batch_size, num_examples)])yield features[batch_indices], labels[batch_indices]# 设置批量大小
batch_size = 10# 初始化模型参数 
# 随机初始化权重,设置requires_grad=True以计算梯度
w = torch.normal(0, 0.01, size=(2, 1), requires_grad=True) # 初始化偏置为0,设置requires_grad=True以计算梯度
b = torch.zeros(1, requires_grad=True)  # 定义模型
def linreg(X, w, b):"""线性回归模型"""return torch.matmul(X, w) + b# 定义损失函数
def squared_loss(y_hat, y):"""均方损失函数"""return (y_hat - y.reshape(y_hat.shape)) ** 2 / 2# 定义优化函数
def sgd(params, lr, batch_size):"""小批量随机梯度下降"""# 更新参数时不需要计算梯度with torch.no_grad():for param in params:param -= lr * param.grad / batch_size  # 参数更新param.grad.zero_()  # 梯度清零# 模型训练
lr = 0.03  # 学习率
num_epochs = 5  # 迭代周期数
net = linreg  # 线性回归模型
loss = squared_loss  # 损失函数# 开始训练
for epoch in range(num_epochs):for X, y in data_iter(batch_size, features, labels):l = loss(net(X, w, b), y)  # 计算小批量数据的损失l.sum().backward()  # 计算梯度sgd([w, b], lr, batch_size)  # 更新参数with torch.no_grad():train_l = loss(net(features, w, b), labels)  # 计算整个数据集上的损失print(f'第{epoch + 1}轮,损失: {float(train_l.mean()):f}')# 打印权重和偏置的估计误差
print(f'w的估计误差: {true_w - w.reshape(true_w.shape)}')
print(f'b的估计误差: {true_b - b}')# 示例输出:
# 第1轮,损失: 0.036624
# 第2轮,损失: 0.000131
# 第3轮,损失: 0.000052
# 第4轮,损失: 0.000052
# 第5轮,损失: 0.000052
# w的估计误差: tensor([-0.0003, -0.0008], grad_fn=<SubBackward0>)
# b的估计误差: tensor([0.0007], grad_fn=<RsubBackward1>)
http://www.mmbaike.com/news/39752.html

相关文章:

  • 移动网站怎么做北京企业推广
  • 北京专业网站设计制作电商运营推广是做什么的
  • 大庆市建设大厦网站网页代码
  • 网站测试设计南京百度seo
  • 设计师 英文网站长沙正规seo优化价格
  • 动态网站建设实训报告总结河南网站关键词优化代理
  • 食品企业网站建设方案sem广告
  • 交友网站免费建设网站推广方案策划
  • 学做网站平台google play官网下载
  • soho在哪里做网站免费自学电商教程
  • 做兼职在线抠图网站专业网站优化公司
  • 做简历用什么网站网站设计培训
  • 硬件开发工程师简历南宁seo排名收费
  • 扬州 网站建设百度推广上班怎么样
  • 能够做外贸的网站有哪些问题近三天新闻50字左右
  • 网站建设先做前台还是后台2023年5月疫情爆发
  • 广州网站建设制作价格怎么去营销自己的产品
  • 网站空间如何升级360推广怎么收费
  • 网站查询页面设计长春网站制作推广
  • 企业开发网站建设百度广告代运营公司
  • 三亚文明城市建设服务中心报名网站关键词搜索次数查询
  • 空间设计师网站链网
  • 公司运营策划方案seo公司
  • 建设公司网站的好处手机百度电脑版入口
  • 重庆汉沙科技做网站怎么样网络营销的企业有哪些
  • 网站建设的策划模板网站免费
  • 有没有做装修的大型网站而不是平台搜索引擎是什么意思
  • 新塘17网站一起做网店官网二级域名免费分发
  • 做网站 提要求怎么注册网址
  • 怎样做淘宝的导购网站活动软文怎么写