美文网首页js css html
torch.flatten vs torch.nn.Flatte

torch.flatten vs torch.nn.Flatte

作者: LabVIEW_Python | 来源:发表于2023-03-05 09:58 被阅读0次

torch.flatten 和 torch.nn.Flatten 都用于把多维Tensor展平(flatten), 区别是:

  • torch.flatten是函数,使用前无需先实例化,默认从第0维开始展平,通用化好

torch.flatten(input, start_dim=0, end_dim=- 1)

  • torch.nn.Flatten是类,使用前需要先实例化,由于其在torch.nn模块中,默认专门处理神经网数据的展平,而神经网络数据通常第0维是Batch_Size, Batch_Size无需展平,所以其默认从第1维开始展平。

Class torch.nn.Flatten(start_dim=1, end_dim=- 1)

测试范例程序如下:

import torch

input_tensor = torch.randn(32, 4, 5, 5)
m = torch.nn.Flatten() #实例化Flatten
output1 = m(input_tensor)
print(output1.shape)
output2 = torch.flatten(input_tensor)
print(output2.shape)

运行结果如下:

torch.Size([32, 100])
torch.Size([3200])

另外,torch.nn.Flatten适合作为一个“神经网络层”,加入神经网络中,范例:

def _create_fcs(self, split_size, num_boxes, num_classes):
        S, B, C = split_size, num_boxes, num_classes
        return nn.Sequential(
            nn.Flatten(),
            nn.Linear(1024 * S * S, 4096), 
            # Usually, dropout is placed on the fully connected layers only
            # A rule of thumb is to set the keep probability (1 - drop probability) to 0.5 when dropout is applied to fully connected layers
            # https://stackoverflow.com/questions/46841362/where-dropout-should-be-inserted-fully-connected-layer-convolutional-layer
            nn.Dropout(0.5),
            nn.LeakyReLU(0.1),
            # The predictions are encoded as an S × S × (B ∗ 5 + C) tensor
            nn.Linear(4096, S * S * (B * 5 + C)), # 7*7*(2*5+20)=1470
        )

相关文章

  • 【五行论水】

    壬vs癸阳vs阴动vs静白vs黑勇vs谋狂vs逸涛vs渗敏vs睿急vs缓响vs寂奔vs驻吐vs纳 。。。。。。 水...

  • 【土为何物】

    戊vs己阳vs阴厚vs薄重vs轻凸vs平实vs虚深vs浅伟vs卑藏vs盖信vs疑稳vs浮强vs弱 土代表环境环境寓...

  • 【五行论木】

    甲vs乙 阳vs阴 直vs曲 纵vs横 高vs宽 挺vs垂 衝vs铺 优vs良 通vs达 干vs枝 上vs下 粗v...

  • 【五行论火】

    丙vs丁 阳vs阴 散vs聚 泛vs专 远vs近 猛vs文 爆vs缩 快vs慢 扩vs定 周vs点 外vs里 宏v...

  • 【五行论金】

    庚vs辛 阳vs阴 刚vs柔 锋vs锐 劈vs戳 悍vs险 确vs准 决vs绝 边vs端 理vs据 冷vs润 攻v...

  • vscode 免费视频教程

    VS Code教程 VS Code简介 VS Code 界面 VS Code各种视图 VS Code主题 VS C...

  • VS Code导学视频,教你如何入门!

    VS Code教程 VS Code简介 VS Code 界面 VS Code各种视图 VS Code主题 VS C...

  • 第3天|生命只有一种绝对

    对vs错,男vs女,左vs右,好vs坏,黑vs白,简单vs复杂,快乐vs难过……小时候我们以为这些都是绝对的,直到...

  • 信念

    厚重VS虚浮 坚持VS放弃 真难VS畏难 不信VS相信 定力VS裹挟 邪路VS正道 信念与行动:为者,则难者亦易矣

  • DevOps 漫谈:基础设施部署和配置管理

    Ansible vs. Chef vs. Fabric vs. Puppet vs. SaltStack 在生产环...

网友评论

    本文标题:torch.flatten vs torch.nn.Flatte

    本文链接:https://www.haomeiwen.com/subject/kmuuldtx.html