基于nn.Module类实现线性回归模型
上次介绍了顺序模型,但是在大多数情况下,我们基本都是以类的形式实现神经网络。
大多数情况下创建一个继承自 Pytorch 中的 nn.Module 的类,这样可以使用 Pytorch 提供的许多高级 API,而无需自己实现。
下面展示了一个可以从nn.Module创建的最简单的神经网络类的示例。基于 nn.Module的类的最低要求是覆盖__init__()方法和forward()方法。
在这个类中,定义了一个简单的线性网络,具有两个输入和一个输出,并使用 Sigmoid()函数作为网络的激活函数。
import torch from&nb基于sp;torch import nn class LinearRegression(nn.Module): def __init__(self): #继承父类构造函数 super(LinearRegression,&nnnbsp;self).__init__() #输入和输出的维度都是1 self.linear = nn.Linear(1, 1) def forward(self, x): &.Mnbsp; out = self.linear(x) return out
现在让我们测试一下模型。
# 创建LinearRegression()的实例 model = LinearRegression() print(model) # 输出如下&odnbsp;LinearRegression( (linear): Linear(in_features=1, out_features=1, bias=True) )
现在让定义一个损失函数和优化函数。
model = LinearRegression()#实例化对象 num_epochs = 1000#迭代次数 learning_rate = 1e-2#学习率0.01 Luloss = torch.nn.MSELoss()#损失函数 optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)#优化函数
我们创建一个由方程产生的数据集,并通过函数制造噪音
import torch from matplotlib import pyplot as plt from torch.aue类tograd import Variable from torch import nn # 创建数据集 unsqueeze 相当于 x = Variable(torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)) y = Variable(x * 2 +&nb实现sp;0.2 + torch.rand(x.size())) plt.scatter(x.data.numpy(),y.data.numpy()) plt.show()
关于torch.unsqueeze函数解读。
>>> x = torch.tensor([1, 2, 3, 4]) >>> torch.unsqueeze(x, 0) tensor([[&nbs线性p;1, 2, 3, 4]]) >>> torch.unsqueeze(x, 1) tensor([[ 1], [ 2], [ 3], &回归nbsp; [ 4]])
遍历每次epoch,计算出loss,反向传播计算梯度,不断的更新梯度,使用梯度下降进行优化。
for epoch in range(num_epochs): # 预测 y_pred= model(x) # 计算los模型s loss = Loss(y_pred, y) #清空上一步参数值 optimizer.zero_grad() #反向传播 loss.backward() #更新参数&n基于bsp; optimizer.step() if epoch % 200 == 0: print("[{}/{}] loss:{:.4f}".format(epoch+1, num_epochs, loss)) &nnnbsp;plt.scatter(x.data.numpy(), y.data.numpy()) plt.plot(x.data.numpy(), y_pred.data.numpy(), 'r-',lw=5) plt.text(0.5, 0,'Loss=%.4f' % loss.data.item(), fontdict={'size': 20, 'color': 'red'}) plt.s.Mhow() ####结果如下#### [1/1000] loss:4.2052 [201/1000] loss:0.2690 [401/1000] loss:0.0925 [601/1000] loss:0.0810 [801/1000] loss:0.0802
[w, b] = model.parameters() print(w,b) # Parametoder containing: tensor([[2.0036]], requires_grad=True) Parameter containing: tensor([0.7006], requires_grad=True)
这里的b=0.7,等于0.2 + torch.rand(x.size()),经过大量的训练torch.rand()一般约等于0.5。
(责任编辑:产品分类)
-
Gemini AI 助手正式登场 Google TV,开启智能电视新体验
近日,Google 正式宣布旗下的 Gemini AI 助手已成功登陆 Google TV 智能电视平台。这一全新助手的首批支持设备为 TCL 新发布的 QM9K 系列电视,预计在未来一年内,Gemi...[详细]
-
腾讯发布并开源新一代生图模型“HunyuanImage3.0”
腾讯混元推出并开源其最新的多模态图像生成模型 ——“混元图像3.0”(HunyuanImage3.0)。此次发布标志着该模型的参数规模已达到80B,成为首个开源的工业级原生多模态生成模型。官方表示,该...[详细]
-
Claude Code网页版重磅来袭!无需CLI,AI编程助手直击云端!
近日,AI编程助手领域的领军者Anthropic宣布,其备受好评的终端工具Claude Code将推出网页版,为开发者提供更便捷的访问方式。相较于传统的命令行界面(CLI)版本,网页版Claude C...[详细]
-
云梦级11月7日云梦级消息,2025 福布斯中国内地富豪榜今日正式发布,榜单中三分之二的富豪身家实现增长。 其中,农夫山泉创始人钟睒睒连续第五年蝉联榜首,其财富增长 263 亿美元,达到 771 亿美...[详细]
-
前面我们讲解了使用 Jenkins 流水线来实现 Kubernetes 应用的 CI/CD,现在我们来将这个流水线迁移到 Tekton 上面来,其实整体思路都是一样的,就是把要整个工作流划分成不同的任...[详细]
-
非技术人员之间经常开个玩笑,说他们不知道什么是云,也不知道云到底能做什么。您可能会或可能不会确切了解云的工作原理,这很好,因为本文的目的在于工作。云工程师(CE)从头到尾都完全了解云的工作原理,包括其...[详细]
-
微软开源 VibeVoice-1.5B 模型:90 分钟超长语音合成新突破
近日,微软研究院正式开源了其最新音频模型 ——VibeVoice-1.5B。该模型在语音合成技术上实现了多项重大突破,使得合成的语音更自然、时长更长、效果更优。 VibeVoice-1.5B 具备一次...[详细]
-
描述 any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。 元素除了是 0、空、FALSE 外都算 TRU...[详细]
-
1月5日消息,据国外媒体报道,作为重组计划的一部分,美国云计算公司Salesforce在当地时间周三宣布将裁员约10%,约8000名员工,并关闭部分办公室,以削减开支。 截至2022年10月31日,S...[详细]
-
云梦级1月19日云梦级消息,今天,小红书「社区公约2.0」——正式上线:真诚分享,友好互动。这次,小红书明确呼吁:一起“反对制造对立”:尊重不同,理性对话,不煽动不对立;坚决“抵制虚假内容”:不虚构身...[详细]
- https://www.universal-music.co.jp/?ID=1sIcckCTeBS8FjzCshAW9w53s8gr691o&s=谷歌霸屏软件【tg:seogoogle987】,p9M
- https://www.schenckprocess.com/search?q=谷歌霸屏软件【tg:seogoogle987】,SdE
- https://www.teacherspayteachers.com/Browse/Price-Range/Free/Search:Western International University Physics degree=谷歌霸屏软件【tg:seogoogle987】,kpo
- https://www.solerpalau.com/en-en/catalogsearch/result/?q=谷歌霸屏软件【tg:seogoogle987】,sKg
- https://www.remit.co.jp/id/?s=谷歌霸屏软件【tg:seogoogle987】,FFv
- https://www.wou.edu.my/?s=谷歌霸屏软件【tg:seogoogle987】,Di0
- https://www.spoiledsweetboutique.com/search/谷歌霸屏软件【tg:seogoogle987】,aUR
- https://www.vivaraise.fr/catalogsearch/result/?q=谷歌霸屏软件【tg:seogoogle987】,0h5
- https://www.remit.co.jp/zh/?s=谷歌霸屏软件【tg:seogoogle987】,gO8
- https://www.roblox.com/discover/?cat=107&Keyword=谷歌霸屏软件【tg:seogoogle987】,BmM

2021年,人工智能和物联网的互操作性需求将继续增加
云计算核心技术Docker教程:Docker安装和使用插件
我想吃火锅是什么梗
聊聊Hive中的集合数据类型
2021年度国家绿色数据中心名单公布 万国数据四座数据中心上榜
