首页 > 其他分享 >torch的flatten函数

torch的flatten函数

时间:2023-07-28 14:34:56浏览次数:24  
标签:... 函数 S2 S1 torch flatten Sm 维度

python:flatten()参数详解

这篇博客主要写flatten()作用,及其参数的含义

  • flatten()是对多维数据的降维函数。
  • flatten(),默认缺省参数为0,也就是说flatten()和flatte(0)效果一样。
  • python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的维度,其他维度的数据全都挤在dim这一维。
  • 比如一个数据的维度是 ( S 0 , S 1 , S 2......... , S n ) (S0,S1,S2.........,Sn) (S0,S1,S2.........,Sn), flatten(m)后的数据为 ( S 0 , S 1 , S 2 , . . . , S m − 2 , S m − 1 , S m ∗ S m + 1 ∗ S m + 2 ∗ . . . ∗ S n ) (S0,S1,S2,...,Sm-2,Sm-1,Sm*Sm+1*Sm+2*...*Sn) (S0,S1,S2,...,Sm−2,Sm−1,Sm∗Sm+1∗Sm+2∗...∗Sn)
  • 下面我们举个例子来理解一下flatten

比如我们随机定义一个维度为(2,3,4)的数据a

import torch
a = torch.rand(2,3,4)

a输出结果为:

 


a此时的维度为(2,3,4)

flatten()和flatten(0)效果一样,a这个数据从0维展开,就是( 2 ∗ 3 ∗ 4 2*3*4 2∗3∗4),维度就是(24)

b = a.flatten()
c = a.flatten(0)

b,c的结果如图:

b,c相等,维度均为 ( 2 ∗ 3 ∗ 4 ) (2*3*4) (2∗3∗4)也就是(24)

a从1维展开flatten(1),就是 ( 2 , 3 ∗ 4 ) (2,3*4) (2,3∗4),也就是(2,12).

d = a.flatten(1)

d的结果如图所示:

a从一维展开后的数据d的维度为 ( 2 , 3 ∗ 4 ) (2,3*4) (2,3∗4)也就是(2,12)

a若是从2维展开flatten(2),那就是(2,3,4)和之前没有变化

e = a.flatten(2)

e的结果如图所示:

e从二维展开后的数据d的维度为 ( 2 , 3 , 4 ) (2,3,4) (2,3,4)

总结

  • python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的维度,其他维度的数据全都挤在dim这一维。
  • 比如一个数据的维度是 ( S 0 , S 1 , S 2 , S 3......... , S n ) (S0,S1,S2,S3.........,Sn) (S0,S1,S2,S3.........,Sn), flatten(m)后的数据为 ( S 0 , S 1 , S 2 , S 3 , . . . , S m − 2 , S m − 1 , S m ∗ S m + 1 ∗ S m + 2 ∗ . . . ∗ S n ) (S0, S1,S2,S3,...,Sm-2,Sm-1,Sm*Sm+1*Sm+2*...*Sn) (S0,S1,S2,S3,...,Sm−2,Sm−1,Sm∗Sm+1∗Sm+2∗...∗Sn)

标签:...,函数,S2,S1,torch,flatten,Sm,维度
From: https://www.cnblogs.com/chentiao/p/17587496.html

相关文章

  • 图注意力网络论文详解和PyTorch实现
    图神经网络(gnn)是一类功能强大的神经网络,它对图结构数据进行操作。它们通过从节点的局部邻域聚合信息来学习节点表示(嵌入)。这个概念在图表示学习文献中被称为“消息传递”。消息(嵌入)通过多个GNN层在图中的节点之间传递。每个节点聚合来自其邻居的消息以更新其表示。这个过......
  • 无涯教程-jQuery - show( )方法函数
    show()方法仅显示匹配元素中的每个元素(如果隐藏)。此方法还有另一种形式,可以控制动画的速度。show()-语法selector.show();show()-示例以下是一个简单的示例,简单说明了此方法的用法-<html><head><title>ThejQueryExample</title><scripttype=......
  • 有趣的密码学之散列函数,你了解多少
    任何形式的网络服务都存在安全风险,如何将风险降到最低是互联网普遍关注的问题。通常,网络安全措施的实现方法有数据加密、数字签名、身份认证、防火墙和入侵检测等。其中数据加密是防止未经授权的用户访问敏感信息的手段,而研究数据加密的科学我们称之为密码学(Cryptography)。密码学......
  • 【d2l】【困难代码】【1】 9.7 损失函数
    问题描述神の代码秀我一脸,来搞懂一下问题解决1.torch.tensor的bool索引作用:只保留为true或为1位置处的元素参考:https://deepinout.com/pytorch/pytorch-questions/117_pytorch_can_i_slice_tensors_with_logical_indexing_or_lists_of_indices.html2.torch.tensor中None......
  • Java8 函数式编程stream流
    开篇介绍Java8中新增的特性旨在帮助程序员写出更好的代码,其中对核心类库的改进是很关键的一部分,也是本章的主要内容。对核心类库的改进主要包括集合类的API和新引入的流(Stream),流使程序员得以站在更高的抽象层次上对集合进行操作。下面将介绍stream流的用法。1.初始环境准备......
  • linux shell read函数
    摘要shell中使用read读取控制台输入一、基本语法read[选项][参数]选项选项说明参数-p指定读取值的提示符(就是一段文字)字符串(提示符)-t指定读取值时等待的时间(秒)),如果没有在指定的时间内输入,就不再等待了数字,单位是s变量指定读取值的变量名二......
  • linux shell函数:定义函数 | 调用函数
    摘要介绍shell如何定义并调用函数的一、基本语法定义函数[function]funcname[()]{ Action; [returnint;]}调用函数functame[值]二、快速入门案例1:计算输入两个参数的和,getSum#!/bin/bash#计算输入两个参数的和,getSum#定义函数getSumfunctionge......
  • linux shell函数:basename函数 | dirname函数
    摘要介绍几个shell常用的函数,当然在linux命令行也能直接使用basename函数dirname函数一、文件名类型函数1.basename功能:返回完整路径最后/的部分,常用于获取文件名语法:basename[pathname][suffix]功能描述:basename命令会删掉所有的前缀包括最后一个'/'字符,然后将字......
  • 【d2l】【常见函数】【13】 nn.Linear( )
    只对输入的张量的最后一个维度做全连接参考:https://pytorch.org/docs/stable/generated/torch.nn.Linear.html问题来源这个output它是个(a,b,c)形式的三维张量,突然做个全连接我不知道咋整,也没见它被展开成一维向量问题解决查阅pytorch官方文档后发现,该函数只对输入的张量的......
  • 椭球面拟合方法及一般多项式函数拟合拓展
    基于对一般二次曲面拟合效果的不满,特地整理这一篇文章。不加任何限制的一般二次曲面拟合在机器视觉实际应用时会出现很多意外的情况。比如文章《匹配位姿拟合求精方法-兜尼完-博客园(cnblogs.com)》和《9点拟合梯度边缘亚像素方法-兜尼完-博客园(cnblogs.com)》,这两种方......