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

沈阳专业制作网站南宁营销型网站建设公司

沈阳专业制作网站,南宁营销型网站建设公司,长沙天津网站建设,网站主页设计教程import random import torch# ①根据带有噪声的线性模型构造一个人造数据集。 使用线性模型参数w[2,−3.4] b4.2和噪声项ϵ生成数据集及其标签 def synthetic_data(w, b, num_examples):"""生成 y Xw b 噪声。"""# 生成均值为0,标…
import random
import torch# ①根据带有噪声的线性模型构造一个人造数据集。 使用线性模型参数w=[2,−3.4]  b=4.2和噪声项ϵ生成数据集及其标签
def synthetic_data(w, b, num_examples):"""生成 y = Xw + b + 噪声。"""# 生成均值为0,标准差为1,行为num_examples = 1000,列为len(w)=2的矩阵,也就是从一个标准正态分布N~(0,1),提取一个1000*2的矩阵。X = torch.normal(0, 1, (num_examples, len(w)))# 此时X为1000*2的矩阵,也就是二维张量,w为向量,也就是一维张量,符合normal运算的第四种情况,此时将w转置为列向量,也就是2*1的矩阵,做矩阵乘法结果为1000*1的列向量。y = torch.matmul(X, w)+b# 生成均值为0,标准差为0.01的噪声加上y,返回新的yy += torch.normal(0, 0.01, y.shape)# 返回X 将y转置成1列后返回return X, y.reshape((-1, 1))
# 定义w
true_w = torch.tensor([2, -3.4])
# 定义b
true_b = 4.2
# 生成数据集和标签
features, labels = synthetic_data(true_w, true_b, 1000)
# 打印第一个特征和标签,观察数据集和特征格式
print('features:', features[0], '\nlabel:', labels[0])# ②定义一个data_iter 函数, 该函数接收批量大小、特征矩阵和标签向量作为输入,生成大小为batch_size的小批量
def data_iter(batch_size, features, labels):# features的len应该是1000num_examples = len(features)# rang(1000)的一个数据再list一下组成一个列表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
# 打印
for X, y in data_iter(batch_size, features, labels):print(X, '\n', y)break# ③定义 初始化模型参数
w = torch.normal(0, 0.01, size=(2, 1), 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_sizeparam.grad.zero_()# ⑦训练过程
# 定义学习率(理解为梯度下降中的步长不知道对不对)
lr = 0.03
# 定义学习几轮
num_epochs = 5
# 定义网络
net = linreg
# 定义损失函数
loss = squared_lossfor 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 {epoch + 1}, loss {float(train_l.mean()):f}')print(f'w的估计误差: {true_w - w.reshape(true_w.shape)}')print(f'b的估计误差: {true_b - b}')

学习第三轮时候基本已经稳定

epoch 1, loss 0.035958
w的估计误差: tensor([ 0.0963, -0.1706])
b的估计误差: tensor([0.1828])
epoch 2, loss 0.000128
w的估计误差: tensor([ 0.0048, -0.0085])
b的估计误差: tensor([0.0081])
epoch 3, loss 0.000050
w的估计误差: tensor([ 0.0003, -0.0001])
b的估计误差: tensor([0.0006])
epoch 4, loss 0.000050
w的估计误差: tensor([4.5466e-04, 1.8120e-05])
b的估计误差: tensor([0.0004])
epoch 5, loss 0.000050
w的估计误差: tensor([3.6359e-05, 3.4094e-05])
b的估计误差: tensor([0.0004])Process finished with exit code 0
http://www.yayakq.cn/news/467249/

相关文章:

  • 做网站前端后台led wordpress
  • 招生型网站建设网站建设须知
  • 没有备案的网站怎么访问不了广州公司网站建设公司
  • 网站推广外包深圳网站建设公司哪家好
  • 销售网站开发的背景海外广告投放代理商
  • 哈尔滨最好的网站建设公司数字博物馆网站建设内容
  • 网站建设软件 免费做内部优惠券网站赚钱吗
  • 建设银行网站可以更改个人电话海宁高端网站设计
  • 重庆名威建设工程咨询有限公司网站山亭 网站建设
  • 简约 时尚 高端 网站建设重庆可做网站 APP
  • wordpress加载jquery库深圳网站的优化公司
  • 整站网站优化运营企业网站html百度云
  • 微网站开发平台wizi游戏开发和网站开发那个有前景
  • 局网站建设情况汇报商城小程序报价
  • 网站 通管局 报备家装公司利润一般多少
  • 做招聘网站创业唯品会购物网站开发项目
  • 注册公司网站怎么做中文网站建设计划书
  • 天津建设与管理局网站国家域名注册
  • 济宁网站建设培训班做小程序要有网站吗
  • 无锡网站制作服务c 网站开发的好处
  • 做网站必须购买空间吗?哪个网站免费h5模板多
  • 网站的flash网页qq属于
  • 青岛建设项目环评公示网站专门做网站的公司有哪些
  • 漯河哪里做网站郑州做网站那
  • 即墨城乡建设局网站成都 网站改版
  • 鄂州网站建设价格开发软件怎么申请版权
  • 东莞营销型高端网站建设中山品牌网站建设
  • 湘潭网站建设公司有哪些广告推广的好处
  • 外贸设计网站建设鼓楼公司网站建设费用
  • 企业信息系统查询系统网站seo排名公司