pytorch 笔记:torch.fft

这篇具有很好参考价值的文章主要介绍了pytorch 笔记:torch.fft。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 FFT

torch.fft,pytorch学习,pytorch,深度学习,人工智能

进行一个维度的快速傅里叶变换

torch.fft.fft(input, 
                n=None, 
                dim=- 1, 
                norm=None, 
                *, 
                out=None)

1.1 主要参数

input 输入,需要傅里叶变换的tensor
n

需要变换的tensor的长度,默认是input的长度

  • 如果比input长度大,那么补0
  • 如果比input长度小,那么截取
dim 哪一个维度进行快速傅里叶变换
norm
  • ‘forward’:用1/n 正则化
  • ‘backward’:无需正则化
  • ‘ortho’:使用1/sqrt(n)正则化

1.2 举例

import torch

a=torch.Tensor([0,1,2,3,4])
torch.fft.fft(a)
'''
tensor([10.0000+0.0000j, -2.5000+3.4410j, -2.5000+0.8123j, -2.5000-0.8123j,
        -2.5000-3.4410j])
'''

2 iFFT

逆正则化

torch.fft.ifft(
    input, 
    n=None, 
    dim=- 1, 
    norm=None, 
    *, 
    out=None) 

2.1 主要参数

input 输入,需要傅里叶变换的tensor
n

需要变换的tensor的长度,默认是input的长度

  • 如果比input长度大,那么补0
  • 如果比input长度小,那么截取
dim 哪一个维度进行快速傅里叶变换
norm
  • ‘forward’:用1/n 正则化
  • ‘backward’:无需正则化
  • ‘ortho’:使用1/sqrt(n)正则化

2.2 举例

import torch

a=torch.Tensor([[0,1,2,3],
                [3,4,6,7]])
torch.fft.ifft(torch.fft.fft(a))
'''
tensor([[0.+0.j, 1.+0.j, 2.+0.j, 3.+0.j],
        [3.+0.j, 4.+0.j, 6.+0.j, 7.+0.j]])
'''

3 rFFt

将FFT结果中虚数部分为负,且有对应共轭的那一部分去除,减少存储量

torch.fft.rfft(
    input, 
    n=None, 
    dim=- 1, 
    norm=None, 
    *, 
    out=None) 

3.1  主要参数

input 输入,需要傅里叶变换的tensor
n

需要变换的tensor的长度,默认是input的长度

  • 如果比input长度大,那么补0
  • 如果比input长度小,那么截取
dim 哪一个维度进行快速傅里叶变换
norm
  • ‘forward’:用1/n 正则化
  • ‘backward’:无需正则化
  • ‘ortho’:使用1/sqrt(n)正则化

3.2 举例(和FFT的对比) 

import torch

a=torch.Tensor([[0,1,2,3],
                [3,4,6,7]])
torch.fft.fft(a)
'''
tensor([[ 6.+0.j, -2.+2.j, -2.+0.j, -2.-2.j],
        [20.+0.j, -3.+3.j, -2.+0.j, -3.-3.j]])
'''

torch.fft.rfft(a)
'''
tensor([[ 6.+0.j, -2.+2.j, -2.+0.j],
        [20.+0.j, -3.+3.j, -2.+0.j]])
'''

4 irfft

rfft的逆运算文章来源地址https://www.toymoban.com/news/detail-756973.html

import torch

a=torch.Tensor([[0,1,2,3],
                [3,4,6,7]])
torch.fft.irfft(torch.fft.rfft(a))
'''
tensor([[0., 1., 2., 3.],
        [3., 4., 6., 7.]])
'''

到了这里,关于pytorch 笔记:torch.fft的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)

     一、卷积层—Convolution Layers  1.1 1d / 2d / 3d卷积 1.2 卷积—nn.Conv2d() nn.Conv2d 1.3 转置卷积—nn.ConvTranspose nn.ConvTranspose2d  二、池化层—Pooling Layer (1)nn.MaxPool2d (2)nn.AvgPool2d (3)nn.MaxUnpool2d  三、线性层—Linear Layer  nn.Linear  四、激活函数层—Activate Layer (1)nn.Sigmoid  (

    2024年01月20日
    浏览(41)
  • 【深度学习笔记】彻底理解torch中的tensor与numpy中array区别及用法

    刚接触深度学习的同学,很多开源项目代码中, 张量tensor 与 数组array 都有使用,不清楚两者有什么区别,以及怎么使用,如何相互转换等。博主起初也有类似的疑惑,经过查阅资料以及实践,逐渐有了深入了解,本文将记录并分享自己对两者的理解,可供参考。 提示:以下

    2023年04月08日
    浏览(91)
  • 深度学习实战24-人工智能(Pytorch)搭建transformer模型,真正跑通transformer模型,深刻了解transformer的架构

    大家好,我是微学AI,今天给大家讲述一下人工智能(Pytorch)搭建transformer模型,手动搭建transformer模型,我们知道transformer模型是相对复杂的模型,它是一种利用自注意力机制进行序列建模的深度学习模型。相较于 RNN 和 CNN,transformer 模型更高效、更容易并行化,广泛应用于神

    2023年04月22日
    浏览(58)
  • Pytorch深度学习 - 学习笔记

    dir() :打开,看见包含什么 help() :说明书 pytorch中读取数据主要涉及到两个类 Dataset 和 Dataloader 。 Dataset可以将可以使用的数据提取出来,并且可以对数据完成编号。即提供一种方式获取数据及其对应真实的label值。 Dataloader为网络提供不同的数据形式。 Dataset Dataset是一个抽

    2024年02月07日
    浏览(44)
  • 《Python深度学习基于Pytorch》学习笔记

    有需要这本书的pdf资源的可以联系我~ 这本书不是偏向于非常详细的教你很多函数怎么用,更多的是交个基本使用,主要是后面的深度学习相关的内容。 1.Numpy提供两种基本的对象:ndarray(n维数组对象)(用于储存多维数据)和ufunc(通用函数对象,用于处理不同的数据)。

    2024年02月09日
    浏览(41)
  • 人工智能课程笔记(7)强化学习(基本概念 Q学习 深度强化学习 附有大量例题)

    强化学习和深度学习都是机器学习的分支,但是两者在方法和应用场景上有所不同。 强化学习 : 强化学习概述 :强化学习是一种通过智能体与环境进行交互来学习最优行动策略的算法。在强化学习中,智能体与环境不断交互,观察环境的状态并采取不同的行动,从而获得奖

    2024年01月17日
    浏览(50)
  • 深度学习之pytorch 中 torch.nn介绍

    pytorch 中必用的包就是 torch.nn,torch.nn 中按照功能分,主要如下有几类: 1. Layers(层):包括全连接层、卷积层、池化层等。 2. Activation Functions(激活函数):包括ReLU、Sigmoid、Tanh等。 3. Loss Functions(损失函数):包括交叉熵损失、均方误差等。 4. Optimizers(优化器):包括

    2024年02月22日
    浏览(42)
  • 《动手学深度学习(PyTorch版)》笔记2

    让计算机实现微分功能, 有以下四种方式: - 手工计算出微分, 然后编码进代码 - 数值微分 (numerical differentiation) - 符号微分 (symbolic differentiation) - 自动微分(automatic differentiation) 深度学习框架通过 自动微分 来加快求导。 实际中,根据设计好的模型,系统会构建一个 计算

    2024年01月24日
    浏览(44)
  • Pytorch深度学习笔记(五)反向传播算法

    目录 1.为什么要使用反向传播算法 2.二层神经网络 3.反向传播算法更新权值的过程 4.张量Tensor 推荐课程:04.反向传播_哔哩哔哩_bilibili 1.为什么要使用反向传播算法 简单模型可以使用解析式更新w 复杂模型,如图,输入矩阵为5*1矩阵,等一层权重矩阵H1为6*5矩阵,则需要30个解

    2023年04月22日
    浏览(35)
  • 《动手学深度学习(PyTorch版)》笔记1

    data 每个数据集由一个个样本(example, sample)组成,大多时候,它们遵循独立同分布(independently and identically distributed, i.i.d.)。 样本有时也叫做数据点(data point)或数据实例(data instance),通常每个样本由一组称为特征(features,或协变量(covariates))的属性组成。 机器学习

    2024年01月24日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包