搭建神经网络(torch.nn的用法)

零零碎碎总结了一些torch框架里面nn模块的用法,尤其是关于搭建神经网络的

nn.ModuleList

nn.Module

nn.Sequential

nn.Linear

nn.Dropout

nn.Embedding

nn.DataParallel()

将模型封装起来,便于在多个gpu上并行计算,训练或者推理

nn.DataParallel 是一个用于并行计算的 PyTorch 模型包装器。它可以将模型复制到多个GPU设备上,并自动将输入数据划分为多个子批次(mini-batches),分配给不同的GPU进行计算,并且能够有效地将梯度聚合回主模型。

nn.DataParallel 是一个用于在多个GPU上并行执行模型训练或推断的PyTorch模型包装器。下面是 nn.DataParallel 的一般用法:

python 复制代码
1.导入必要的库:

import torch
import torch.nn as nn


2.定义模型:

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.conv1 = nn.Conv2d(3, 64, 3)
        # 定义其他层和操作

    def forward(self, x):
        # 定义前向传播逻辑
        return out


3.创建模型对象:

model = MyModel()


4.指定要使用的GPU设备:

device_ids = [0, 1, 2]  # 指定要使用的GPU设备的索引


5.使用 nn.DataParallel 包装模型对象:

model = nn.DataParallel(model, device_ids=device_ids)

以上代码将模型对象 model 包装在 nn.DataParallel 中,使用 device_ids 指定要使用的GPU设备的索引列表。

现在,model 将被自动复制到指定的GPU设备上,并且计算会在每个设备上同时进行。输入数据会被自动划分为多个子批次,并分配给不同的GPU设备。在计算梯度时,梯度将被聚合回主模型,并进行参数更新。

请注意,使用 nn.DataParallel 时,一些操作(如 model.parameters() 和 model.to(device))可能需要进行适当的调整。具体调整取决于您的代码结构和需求。

使用 nn.DataParallel 可以方便地利用多个GPU设备并行计算,从而加快模型训练和推断的速度,并提高深度学习任务的效率和扩展性。

相关推荐
AI实践录15 小时前
大模型架构:理解大模型预测输出文本的底层逻辑
人工智能
Lifangyun_WD15 小时前
昇腾910B vs NVIDIA A100/H100:国产GPU算力租赁选型与迁移实践
人工智能·gpu算力·ai算力·算力租赁·gpu云主机
卡卡罗特AI15 小时前
GPT5.6 今晚全量开发?Codex上线史上最强Coding模型!
人工智能·ai编程
某林21215 小时前
从硬件解耦、3D公差设计到ROS 2柔性导航
人工智能·3d·机器人·ros2·技术复盘
字节跳动视频云技术团队15 小时前
AI Agent 会自己选 CDN 了:当网站访问者从 “人” 扩展到 “AI”,内容分发已升级
人工智能·cdn
机器之心15 小时前
世界模型太慢?西交大提出Fast LeWorldModel:用「动作前缀并行预测」让动态估计加速4倍
人工智能·openai
机器之心15 小时前
今天,「空间原生」时代正式到来!
人工智能·openai
MicrosoftReactor16 小时前
技术速递|Token 经济学:智能体 AI 时代的新 FinOps
人工智能·ai·agent·token·finops
阿里云大数据AI技术16 小时前
AI Search × ES Agent Builder 最佳实践:企业智能助手落地指南
人工智能·elasticsearch
老白讲技术16 小时前
2026年国内APP开发与软件定制服务商能力观察:从AI应用到行业系统开发
大数据·人工智能·ai·app·软件需求·app开发