Pytorch中的NN模块并实现第一个神经网络模型
在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], &tonbsp; [-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],  rc; [-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.84h中39]], 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], 的N [ 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_eN模xample) 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实现], [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.ten经网sor([[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.MSELos络模s() # 构造优化器 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)  Py; # 梯度清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
-
苹果2020Q4重回智能手机销量全球第一,但全年销售龙头仍是三星云计算开发:Python内置函数-enumerate() 函数详解OpenStack的HugePages内存大页动态分配的探索与实践邱跃鹏出任腾讯云与智慧产业事业群COO SAP前中国区总经理李强加盟PyTorch 中 数据集Torchvision和Torchtext如今,可实时扫描100万神经元:大脑细胞活动成像技术新突破标签: 施凯文 飞书 端侧Agent 红杉中国Qoder 推出 “一键增强提示词” 功能,助力开发者提升编码效率华为云发布分布式云全系列产品组合,加速产业全面云化开源!腾讯混元图像3.0正式上线,支持中英文精准渲染、长文本生成
- ·Pinterest 推出 AI 购物助手,助你挑选时尚穿搭
- ·美国法官:苹果经济学家数量多于Epic 质证时间不应相同
- ·标签: 代拜年帮尽孝 郑州跑腿公司 春节即时服务 代磕头
- ·标签: 交个朋友控股 直播间矩阵 股权激励 精细化运营
- ·澳大利亚要求谷歌和Facebook为新闻付费 但新闻网站可能造假
- ·英特尔侵犯芯片专利被判赔偿22亿美元 史上罕见罚单!
- ·谷歌夺回AI画语权,网友:DALL·E 2诞生一个月就过时了?
- ·云计算核心技术Docker教程:在Docker中使用tmpfs挂载
- ·标签: 保时捷 Cellforce 布加迪 莱特斯
- ·标签: 三星家电 DeepSeek 星空卫视 国家大基金
- ·腾讯开源HunyuanImage 2.1!2K高清神图秒生成,复杂提示精准控多主体,AI设计效率爆表?
- ·扎克伯格让步了,但Facebook在全球的麻烦才刚刚开始
- ·谷歌开盘涨超4% 一季度营收、净利润超预期
- ·标签: 神州半导体 IPO 半导体设备 大基金二期
- ·标签: 希迪智驾 港股上市 李泽湘 自动驾驶
- ·标签: 苹果 iPhone 服务业务 大中华区
- ·https://www.springfieldlibrary.org/?s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,nXf
- ·https://5gaa.org/?token=6e2l7hjt2i26gzgctgwdrv7v0j6nxorq&s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】okB
- ·https://www.lauben.com/de/?s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,UTy
- ·https://www.tombow.com/search/谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,3GF
- ·https://www.youtube.com/hashtag/谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,Xqa
- ·https://www.remit.co.jp/vi/?s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】cE7
- ·https://www.oprny.com/search.php?search_query=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,gv2
- ·https://www.abbreviations.com/谷歌霸屏24小时见效-实现思路【tg:seogoogle987】WQm
- ·https://www.lssystems.co.uk/search?page=0&per_page=24&term=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,n4I
- ·https://www.smarty.net/search?q=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,lu8
