nn.Identity 单位矩阵,同一矩阵

文章目录

  • [1. 说明](#1. 说明)
  • [2. pytorch 代码](#2. pytorch 代码)

1. 说明

在搭建网络结构中,为了保证搭建的网络具有高度扩展性和后续调试模型框架,在保证整体结构完整情况下,用nn.Identity 进行占位符处理。

2. pytorch 代码

  • pytorch代码
python 复制代码
import torch
import torch.nn as nn

class MyModel(nn.Module):
    def __init__(self, use_dropout=True):
        super(MyModel, self).__init__()
        self.features = nn.Sequential(
            nn.Conv2d(3, 16, kernel_size=3, padding=1),
            nn.ReLU(),
            # 根据配置决定使用 Dropout 还是 Identity
            nn.Identity() if not use_dropout else nn.Dropout(p=0.5),
            nn.Conv2d(16, 32, kernel_size=3, padding=1),
            nn.ReLU(),
        )
        self.classifier = nn.Linear(32 * 32 * 32, 10)  # 假设输入图像尺寸为 32x32

    def forward(self, x):
        x = self.features(x)
        x = x.view(x.size(0), -1)
        return self.classifier(x)

# 实例化模型时选择是否使用 Dropout
model_with_dropout = MyModel(use_dropout=True)
model_without_dropout = MyModel(use_dropout=False)

# 测试模型输出形状
x = torch.randn(4, 3, 32, 32)
print("Output with dropout:", model_with_dropout(x).shape)
print("Output without dropout:", model_without_dropout(x).shape)
  • result
python 复制代码
Output with dropout: torch.Size([4, 10])
Output without dropout: torch.Size([4, 10])
相关推荐
We་ct9 分钟前
LeetCode 74. 搜索二维矩阵:两种高效解题思路
前端·算法·leetcode·矩阵·typescript·二分查找
Yeats_Liao28 分钟前
华为开源自研AI框架昇思MindSpore应用案例:WaveNet实现音乐生成
人工智能·深度学习·算法·机器学习·边缘计算
Daydream.V31 分钟前
深度学习详解
人工智能·深度学习
zhangfeng113332 分钟前
LLM 大语言模型 训练的时候 batchsize 调整大导致梯度爆炸问题解决
深度学习·机器学习·语言模型
twc82932 分钟前
RAG核心技术解读
人工智能·深度学习·机器学习
如若12334 分钟前
WSL2 启动报错“拒绝访问“ E_ACCESSDENIED 完整解决方案
人工智能·pytorch·python·深度学习·计算机视觉
Shining05961 小时前
AI 编译器系列(五)《拓展 Triton 深度学习编译器——DLCompiler》
人工智能·深度学习·学习·其他·架构·ai编译器·infinitensor
轮到我狗叫了2 小时前
ResNet-阅读
python·深度学习·机器学习
动物园猫2 小时前
7种交通场景目标检测数据集分享(适用于YOLO系列深度学习检测任务)
深度学习·yolo·目标检测
( ˶˙⚇˙˶ )୨⚑︎2 小时前
深度学习与机器学习如何选择?
人工智能·深度学习·机器学习