当前位置: 首页 > article >正文

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

文章目录

  • 1. 说明
  • 2. pytorch 代码

1. 说明

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

2. pytorch 代码

  • pytorch代码
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
Output with dropout: torch.Size([4, 10])
Output without dropout: torch.Size([4, 10])

http://www.kler.cn/a/571541.html

相关文章:

  • vue+elementui 实现上传文件/导入文件的功能
  • Golang的性能分析指标解读
  • Docker概念与架构
  • 【深入OpenCV图像处理:从基础到实战应用】
  • React 中 useState 的 基础使用
  • 医学图像处理开源库介绍:ITK、VTK 和 MITK
  • 【Java---数据结构】链表 LinkedList
  • CSS中各个元素的显示模式(块级/行内元素分类)
  • mysql唯一索引下插入数据死锁过程分析
  • 机器学习--特征选择
  • 每日OJ_牛客_游游的字母串_枚举_C++_Java
  • 高效卸载神器:深度体验分享
  • 探秘基带算法:从原理到5G时代的通信变革【三】Turbo 编解码
  • 【OpenCV C++】以时间命名存图,自动检查存储目录,若不存在自动创建, 按下空格、回车、Q、S自动存图
  • 爬虫逆向实战小记——解决webpack实记
  • 【借助 DeepSeek 之力:自动化 Web 渗透测试脚本编写与实战】
  • 大模型学习笔记------Llama 3模型架构简介
  • Python--面向对象高级(上)
  • Pycharm(四):集合的操作
  • leetcode242 哈希表