当前位置:首页 > 热点 > Pytorch中的NN模块并实现第一个神经网络模型

Pytorch中的NN模块并实现第一个神经网络模型

2026-11-14 [知识产权] 来源:人文荟萃网

 

在PyTorch建立模型,主要是NN模块。

nn.Linear

nn.Linear是创建一个线性层。这里需要将输入和输出维度作为参数传递。

linear = nn.Linear(10, 2) example_input = torch.randn(3, 10) example_output = linear(example_input) example_output 

上面代码linear接受nx10的输入并返回nx2的输出。

 

print(example_input) print(example_output)  tensor([[ 1.1122, -0.1381,  0.5547, -0.3326, Py-0.5676,  0.2810, -0.5521, -0.8729,          -0.6627,  0.8729],         [ 1.9134,  0.2397, -0.8340,  1.1532, -1.6725,  0.6171, -0.0357, -1.6848,          -0.8454,  0.3876], to        [-0.0786, -0.1541, -0.8385, -0.1587, -0.0121,  1.4457, -0.0132,  1.5653,          -1.6954, -0.9350]]) # 输出如下 tensor([[-0.1249, -0.8002],         [-1.0945, -0.2297],      &nrcbsp;  [-0.3558,  0.8439]], grad_fn=)  nn.Relu

nn.Relu对线性的给定输出执行 relu 激活函数操作。

 

relu = nn.ReLU()  relu_output = relu(example_output)  relu_output  # 输出如下 tensor([[0.0000, 0.0000],         [0.0000, 0.0000],         [0.0000, 0.843h中9]], grad_fn=)  nn.BatchNorm1d

nn.BatchNorm1d是一种标准化技术,用于在不同批次的输入中保持一致的均值和标准偏差。

 

batchnorm = nn.BatchNorm1d(2)  batchnorm_output = batchnorm(relu_output)  batchnorm_output  # 输出如下 tensor([[ 0.0000, -0.7071],         [ 0.0000, -0.7071],        &nb的Nsp;[ 0.0000,  1.4142]], grad_fn=)  nn.Sequential

nn.Sequential一次性创建一系列操作。和tensorflow中的Sequential完全一样。

 

mlp_layer = nn.Sequential(     nn.Linear(5, 2),     nn.BatchNorm1d(2),     nn.ReLU() ) test_example = torch.randn(5,5) + 1 print("input: ") print(test_exN模ample) print("output: ") print(mlp_layer(test_example))  # 输出如下 input:  tensor([[ 1.4617,  1.2446,  1.4919,  1.5978, -0.3410],         [-0.2819,  0.5567,  1.0113,  1.8053, -0.0833],         [ 0.2830,&nbs块并p; 1.0857,  1.2258,  2.6602,  0.1339],         [ 0.8682,  0.9344,  1.3715,  0.0279,  1.8011],         [ 0.6172,  1.1414,  0.6030,  0.3876,  1.3653]]) output:  tensor([[0.0000, 0.0000],&nb实现sp;        [0.0000, 1.3722],         [0.0000, 0.8861],         [1.0895, 0.0000],         [1.3047, 0.0000]], grad_fn=) 

在上面的模型中缺少了优化器,我们无法得到对应损失。

import torch.optim as optim adam_opt = optim第一.Adam(mlp_layer.parameters(), lr=1e-1) # 这里lr表示学习率,1e-1表示0.1 train_example = torch.randn(100,5) + 1 adam_opt.zero_grad() # 我们将使用1减去平均值,作为简单损失函数 cur_loss = torch.abs(1 - mlp_layer(train_example)).mean() cur_loss.backward() # 更新参数 adam_opt.step() print(cur_loss.data) # 输出如下 tensor(0.7467) 

虽然上面只是用了个神一个epoch,训练线性模型得到loss为0.7467,上面就是NN模型建立model的整个流程,

第一个神经网络模型

下面实现第一个分类神经网络,其中一个隐藏层用于开发单个输出单元。

首先,使用以下命令导入 PyTorch 库 -

import torch  import torch.nn as nn 

定义所有层和批量大小以开始执行神经网络,如下所示 -

n_in, n_h, n_out, batch_size = 10, 5, 1, 10 

由于神经网络包括输入数据的组合以获得相应的输出数据,我们将遵循以下相同的程序 -

x = torch.randn(batch_size, n_in) y = torch.tensor([[经网1.0], [0.0], [0.0],  [1.0], [1.0], [1.0], [0.0], [0.0], [1.0], [1.0]]) 

创建顺序模型。使用下面代码,创建一个顺序模型 -

model = nn.Sequential(nn.Linear(n_in, n_h),    nn.ReLU(),    nn.Linear(n_h, n_out),    nn.Sigmoid()) 

借助梯度下降优化器构建损失函数,如下所示 -

# 构造损失函数 criterion = torch.nn.MSELoss()&n络模bsp;# 构造优化器 optimizer = torch.optim.SGD(model.parameters(), lr = 0.01) 

使用给定代码行的迭代循环实现梯度下降模型 -

# 梯度下降 for epoch in range(50):    # 正向传递:通过将x传递给模型来计算预测的y    y_pred = model(x)     # 计算loss    loss = criterion(y_pred, y)   &nbPysp; # 梯度清0    optimizer.zero_grad()     # 反向传播,求解梯度    loss.backward()     # 更新模型参数    optimizer.step()    if epoch % 10 == 0:       print('epoch: ', epoch,' loss: ', loss.item())&nbtosp;

输出如下

epoch:  0  loss:  0.2508794665336609 epoch:  10  loss:  0.24847669899463654 epoch:  20  loss:  0.24615907669067383 epoch:  30  loss:  0.24392127990722656 epoch:  40  loss:  0.24175791442394257 

 

(责任编辑:公司治理)

推荐文章
  • 标签: Meta Maher Saba 超级智能实验室 扎克伯格

    标签: Meta Maher Saba 超级智能实验室 扎克伯格 云梦级3月4日云梦级消息,据 BusinessInsider 报道,两名知情员工透露,Meta 正在组建一个新的应用人工智能工程部门,旨在加速公司向超级智能方向推进。 该新部门将由 Maher Sab...[详细]
  • 标签: Token

    标签: Token 撰文 | 雁秋 编辑 | 李信马 题图 | 电影《华尔街之狼》 在ChatGPT引爆AI浪潮后的第四年,出现了一个新的经济学概念:Token经济。 在AI领域,Token是词元,是语言的“原子”,是文...[详细]
  • "最美产品经理"做AI化妆镜:宋紫薇离开vivo创业,瞄准时尚AI硬件市场

    前vivo"最美产品经理"宋紫薇的AI创业方向终于浮出水面。据量子位报道,已入局AI智能硬件赛道的宋紫薇,将目标锁定在"AI化妆镜"这一细分领域。 工商信息显示,今年9月,宋紫薇创立的"薇光点亮"完成...[详细]
  • 阿里云泄露用户数据隐忧:云端隐私,是否真安全?

    阿里云泄露用户数据隐忧:云端隐私,是否真安全? 文 | 新浪科技 周文猛 编辑 | 韩大鹏 刚刚告别亏损时代的阿里云,又站在了舆论漩涡的中心。 一则发生于2019年双十一前后的旧闻,让阿里云登上了热搜,而这一次事故,与云业务用户注册信息的泄露有关。...[详细]
  • 标签: OpenClaw OpenAI Peter Steinberger Claude

    标签: OpenClaw OpenAI Peter Steinberger Claude 云梦级2月18日云梦级消息,OpenClaw创始人彼得·斯坦伯格(Peter Steinberger)日前宣布加入OpenAI,OpenClaw项目本身将转入独立基金会运作,但已获得OpenAI资助。...[详细]
  • 标签: Adobe AI Photoshop Premiere

    标签: Adobe AI Photoshop Premiere 云梦级12月11日云梦级消息,Adobe 2025 财年第 4 财季(截至 2025 年 11 月 28 日)及全年财务报告,营收双双创下历史新高,实现了历史性的突破。 据 Adobe 的财年计算规则...[详细]
  • 标签: 京东外卖 七鲜小厨 外卖市场份额 餐饮生态

    标签: 京东外卖 七鲜小厨 外卖市场份额 餐饮生态 云梦级2月28日云梦级消息,据京东官方信息,其外卖业务正式上线已满一年。在京东外卖的公开信中,其回顾了过去一年的关键历程,并披露目前外卖市场份额超15%等多项核心数据与未来规划,宣布2026年将全面拓...[详细]
  • 羊肉放冰箱冷藏可以保存多久

    羊肉放冰箱冷藏可以保存多久 放在冰箱里面的羊肉最多可以放多久?-九州醉餐饮网冻羊肉贮存在相对湿度95%~100%,温度-18℃的冷藏间。冷藏间温度一昼夜升降幅度不得超过1℃,产品贮藏保质期为10个月。扩展资料挑选zhidao方法...[详细]
  • 标签: 苹果 iPhone 华为 海信空调

    标签: 苹果 iPhone 华为 海信空调 Hello,大家早上好,又是元气满满的一天,先来浏览新鲜的早报吧~ 【苹果提醒 iPhone 用户尽快更新系统】 最近出现了一些关于过时版本的 iOS 容易受到网页攻击的报道。在发现这些问题之后,Ap...[详细]
  • 消息称博通收购云计算企业VMware交易或于周四宣布

    消息称博通收购云计算企业VMware交易或于周四宣布 北京时间5月24日早间消息,据报道,博通公司有可能准备最快于周四宣布收购VMware。不过,在几个报道称两家公司正在进行谈判之后,这一消息可能会更早到来。 报道称,一些实质性条款仍需等待最后确定,目前...[详细]