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

设计网站外网网站建设方案公司

设计网站外网,网站建设方案公司,wordpress 评论通知,wordpress出现error使用pytorch构建线性回归模型 线性方程的一般形式 衡量线性损失的一般形式-均方误差 pytorch中计算图的作用和优势 在 PyTorch 中#xff0c;计算图#xff08;Computational Graph#xff09;是一种用于表示神经网络运算的数据结构。每个节点代表一个操作#xff0c;例如…使用pytorch构建线性回归模型 线性方程的一般形式 衡量线性损失的一般形式-均方误差 pytorch中计算图的作用和优势 在 PyTorch 中计算图Computational Graph是一种用于表示神经网络运算的数据结构。每个节点代表一个操作例如加法、乘法或激活函数而边则代表这些操作之间的数据流动。 计算图的主要优点是可以自动进行微分计算。当你在计算图上调用 .backward() 方法时PyTorch 会自动计算出所有变量的梯度。这是通过使用反向传播算法来实现的该算法从最后的输出开始然后根据链式法则回溯到输入。 以下是一个简单的计算图示例 import torch# 定义两个张量 x torch.tensor([1.0], requires_gradTrue) y torch.tensor([2.0], requires_gradTrue)# 定义计算图 z x * y out z.mean()# 计算梯度 out.backward()print(x.grad) # tensor([0.5]) print(y.grad) # tensor([0.5])在这个例子中我们首先定义了两个需要求导的张量 x 和 y。然后我们定义了一个计算图其中 z 是 x 和 y 的乘积out 是 z 的平均值。当我们调用 out.backward() 时PyTorch 会自动计算出 x 和 y 的梯度。 注意只有那些设置了 requires_gradTrue 的张量才会被跟踪并存储在计算图中。这样我们就可以在需要时计算这些张量的梯度。 import torchx_data [1.0, 2.0, 3.0] #x输入表示特征 y_data [2.0, 4.0, 6.0] #y输入表示标签w torch.tensor([1.0], requires_gradTrue) #创建权重张量启用自动计算梯度def forward(x): #前向传播return x * w #特征和权重的点积构建乘法计算图def loss(x, y):y_pred forward(x)return (y_pred - y) ** 2 #均方误差构建损失计算图线性模型的计算图的一般形式 print(predict before training is {}.format(forward(4).item()))for epoch in range(100):for x,y in zip(x_data, y_data):#组合特征和标签l loss(x,y) #定义计算图包括前向传播和计算损失l.backward() #反向传播计算梯度print(\tgrad:, x,y,w.grad.item())#梯度的标量w.data w.data - 0.01 * w.grad.data#使用“.data”表示是更新数据而不是创建计算图w.grad.data.zero_()#梯度清零准备创建下一个计算图print(progress:, epoch, l.item()) print(predict after training:{}.format(forward(4).item()))使用pytorch API pytorch的张量计算 准备数据集 x_data torch.tensor([[1.0],[2.0],[3.0]]) y_data torch.tensor([[2.0],[4.0],[6.0]])class LinearModel(torch.nn.Module):def __init__(self, *args, **kwargs) - None:super(LinearModel, self).__init__(*args, **kwargs)self.linear torch.nn.Linear(in_features1, out_features1)def forward(self, x):y_pred self.linear(x)return y_predmodel LinearModel()定义损失函数和损失优化函数 关于小批量随机梯度下降 小批量随机梯度下降Mini-batch Stochastic Gradient Descent是批量梯度下降的一种变体。与批量梯度下降相比小批量随机梯度下降在每次迭代时只使用一小部分数据称为小批量来计算梯度然后根据这个梯度来更新模型的参数。 小批量随机梯度下降的目标函数为 J ( θ ) 1 m ∑ i 1 m L ( y ( i ) , f θ ( x ( i ) ) ) J(\theta) \frac{1}{m} \sum_{i1}^{m} L(y^{(i)}, f_{\theta}(x^{(i)})) J(θ)m1​i1∑m​L(y(i),fθ​(x(i))) 其中 J ( θ ) J(\theta) J(θ) 是目标函数 m m m 是数据集的大小 L ( y ( i ) , f θ ( x ( i ) ) ) L(y^{(i)}, f_{\theta}(x^{(i)})) L(y(i),fθ​(x(i))) 是第 i i i 个样本的损失函数 f θ ( x ( i ) ) f_{\theta}(x^{(i)}) fθ​(x(i)) 是模型对第 i i i 个样本的预测。 小批量随机梯度下降的更新规则为 θ θ − α ∇ J ( θ ) \theta \theta - \alpha \nabla J(\theta) θθ−α∇J(θ) 其中 α \alpha α 是学习率 ∇ J ( θ ) \nabla J(\theta) ∇J(θ) 是目标函数关于 θ \theta θ 的梯度。 小批量随机梯度下降的优点是它结合了批量梯度下降的优点即可以利用整个数据集的信息来更新参数和随机梯度下降的优点即可以在每次迭代时使用新的数据。这使得它在处理大规模数据集时具有更好的计算效率同时也能避免随机梯度下降的问题即可能会陷入局部最优。 criteria torch.nn.MSELoss()#使用均方误差做损失函数 optimizer torch.optim.SGD(model.parameters(), lr0.01)#使用随机梯度下降做损失优化函数 for epoch in range(1000):y_pred model(x_data)loss criteria(y_pred, y_data)print(epoch, loss)optimizer.zero_grad()#梯度清零loss.backward()#反向传播optimizer.step()#梯度下降更新参数预测 print(w, model.linear.weight.item()) print(b, model.linear.bias.item())x_test torch.Tensor([[4.0]]) y_test model(x_test) print(y_pred, y_test.data) print(w, model.linear.weight.item()) print(b, model.linear.bias.item())实践 使用pytorch创建线性模型进行波士顿房价预测数据集可以自行下载 import pandas as pd import numpy as np import torch import matplotlib.pyplot as pltdata_file J:\\MachineLearning\\数据集\\housing.datapd_data pd.read_csv(data_file, sep\s)def prepare_data(data, normalize_dataTrue): # 标准化特征矩阵可选 if normalize_data: features_mean np.mean(data, axis0) #特征的平均值features_dev np.std(data, axis0) #特征的标准偏差features_ret (data - features_mean) / features_dev #标准化数据else: features_mean None features_dev None return features_retnp_data pd_data.sample(frac1).reset_index(dropTrue).values #bias np.ones(len(np_data)).reshape(-1,1) #np_data np.concatenate((bias, np_data), axis1) train_data np_data[:int(len(np_data)*0.8), :]test_data np_data[int(len(np_data)*0.8):, :] train_dataset train_data[:, :-1] test_dataset test_data[:, :-1] train_labels train_data[:, -1] test_labels test_data[:, -1] train_dataset prepare_data(train_dataset) # Save the mean and standard deviation of the target variable before normalization target_mean np.mean(train_labels) target_dev np.std(train_labels)print(np_data.shape) print(train_data.shape) print(train_dataset.shape) print(train_labels.shape)features torch.tensor(train_dataset, dtypetorch.float32) print(features[:10]) feature_num features.shape[1] labels torch.tensor(train_labels.reshape(-1,1), dtypetorch.float32)print(features.shape) print(labels.shape)class LinearReg(torch.nn.Module):def __init__(self, *args, **kwargs) - None:super(LinearReg, self).__init__(*args, **kwargs)self.linear_reg torch.nn.Linear(in_featuresfeature_num, out_features1)def forward(self, x):pred_y self.linear_reg(x)return pred_yepoch 100000 lr 0.001 linear_model LinearReg() loss_function torch.nn.MSELoss(size_averageTrue) optimizer torch.optim.SGD(linear_model.parameters(), lr)loss_history [] last_loss 0.01 for epoch_step in range(epoch):predict linear_model(features)loss loss_function(predict, labels)if (epoch_step % 100 0):print(epoch_step, loss)loss_history.append(loss.item())if (abs(float(loss.item()) - last_loss)/last_loss 0.00001):breaklast_loss float(loss.item())optimizer.zero_grad()loss.backward()optimizer.step()plt.plot(loss_history) plt.show() test_dataset prepare_data(test_dataset) test_dataset torch.tensor(test_dataset, dtypetorch.float32) result linear_model(test_dataset).detach().numpy() predicted_values np.round(result, 2) print(predicted_values) show_result np.concatenate((predicted_values.reshape(-1,1), test_labels.reshape(-1,1)), axis1) print(show_result) print(predicted_values)
http://www.zqtcl.cn/news/855604/

相关文章:

  • 如何建设网站山东济南兴田德润官网电子商城官网
  • 网站如何做支付宝接口免费ppt自动生成器
  • 泰安市建设职工培训中心网站官网seo经理招聘
  • 湛江做网站seo网站建设 0551
  • 建站公司 深圳苏州建站公司
  • 网站怎么做引流呢济南网站微信
  • 一个域名可以做几个网站吗wordpress左右翻转页面
  • 天津人工智能建站系统软件wordpress主题没有小工具
  • 网站的备案流程图视频制作素材
  • 劳务公司网站建设方案建设促销网站前的市场分析
  • 网络营销优化培训网站seo置顶 乐云践新专家
  • 小说网站搭建教程wordpress后台图片
  • 付网站开发费计入什么科目网站开发的历史
  • 站长素材ppt模板免费下载网站开发视频教程迅雷下载
  • 建设一个网站怎么赚钱南京江北新区房价走势最新消息
  • 一个网站怎么做软件下载互联网投放渠道有哪些
  • 手机网站建设进度环境设计排版素材网站
  • 网站开发众筹地推网推平台
  • 长沙互联网网站建设wordpress标签id在哪里修改
  • 企业网站的建设 摘要大连网站设计策划
  • 做房地产一级市场的看什么网站网络营销外包推广方式
  • 网站建设基本流程包括哪几个步骤网站建设策划书网站发布与推广
  • 徐州整站优化手机网页端
  • 深圳中瑞建设集团官方网站宁波seo快速优化教程
  • 福田网站制作哪家好昆山企业网站建设公司
  • wordpress快六安网站自然排名优化价格
  • 网站的线下推广怎么做的系统官网网站模板下载安装
  • 北京网站优化推广公司企业网站建设费怎么核算
  • 网站建设vps个人如何做网站推广
  • 小语种网站怎么设计网页制作公司 大连