论文投稿查询会议期刊及deadlines的网站

### 使用 `nn.Sequential` 构建神经网络 在 PyTorch 中,`nn.Sequential` 是一种便捷的方式用于创建按顺序执行的一系列层组成的神经网络。通过这种方式可以简化代码结构并提高可读性。 #### 导入必要的库 为了使用 `nn.Sequential` 需要先导入 PyTorch 及其子模块: ```python import torch import torch.nn as nn ``` #### 定义简单的前馈神经网络 下面展示了一个具体的例子来说明如何利用 `nn.Sequential` 创建一个多层感知器(MLP),该模型接收大小为 28×28 的输入图像,并最终输出分类概率分布[^1]: ```python model = nn.Sequential( nn.Linear(28 * 28, 32), nn.ReLU(), nn.Linear(32, 10), nn.Softmax(dim=1) ) print("Model structure:\n", model) ``` 这段代码定义了一种线性的变换序列,其中包含了两个全连接层以及激活函数 ReLU 和 Softmax 函数。第一个线性层将输入维度从 \(784\) 映射到了 \(32\) 维;第二个线性层进一步映射至 \(10\) 类别的预测向量上,并应用了 softmax 来获得类别间的相对可能性得分。 #### 处理输入张量形状调整 当处理实际数据集时,通常会遇到不同尺寸的数据样本。对于上述案例中的 MNIST 数据集而言,每幅图片都是灰度图形式存储的二维数组 (28 × 28),但在传递给模型之前需要将其展平成一维向量以便于计算矩阵乘法操作。这可以通过调用 `.view()` 方法实现: ```python x_input = torch.randn(2, 28, 28, 1) # 模拟两批随机数作为测试输入 reshaped_x = x_input.view(x_input.size()[0], -1) # 将最后三个轴合并为单个特征向量 print("Reshaped input shape:", reshaped_x.shape) ``` 这里 `-1` 表示自动推断剩余维度的数量以保持原始批量大小不变。因此如果原批次中有两张图片,则经过重塑后的张量应具有 `[batch_size, flattened_features]` 形状,即 `(2, 784)`。 #### 执行前向传播过程 一旦完成了对输入数据预处理工作之后就可以直接调用模型对象来进行推理运算: ```python with torch.no_grad(): # 关闭梯度跟踪模式因为这是评估阶段而非训练期间 y_pred = model.forward(reshaped_x) print("Predicted probabilities:\n", y_pred) ``` 注意,在此上下文中使用了 `torch.no_grad()` 上下文管理器关闭了反向传播机制,因为在仅做预测时不涉及参数更新所以没有必要开启它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值