首页 > 其他分享 >22.11.07

22.11.07

时间:2022-11-07 15:12:43浏览次数:70  
标签:torch False 07 fft pytorch 22.11 rfft input

1、

旧版中 pytorch.rfft 函数与新版 pytorch.fft.rfft 函数对应修改问题

旧版:

fft = torch.rfft(input, 2, normalized=True, onesided=False)
# input 为输入的图片或者向量,dtype=torch.float32,size比如为[1,3,64,64]

新版

可以看到这里也有rfft,官方文档说是用来处理都是实数的输入。但是它在前面的warning中说了是one-side,而我们要的是two-side。此外实数也可以看作是虚部都为0的复数,所以用fft没问题。
新版的rfft和fft都是用于一维输入,而我们的图像是二维,所以应该用rfft2和fft2。在fft2中,参数dim用来指定用于傅里叶变换的维度,默认(-2,-1),正好对应H、W两个维度。
新版所有的fft都不将复数 z = a + b j z=a+bjz=a+bj 存成二维向量了,而是一个数 [ z = a + b j ] [z=a+bj][z=a+bj]。所以如果要跟旧版中一样存成二维向量,需要用.real()和.imag()提取复数的实部和虚部,然后用torch.stack()堆到一起,即可。
————————————————
版权声明:本文为CSDN博主「带鱼的鱼香肉丝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43169650/article/details/121717208

import torch
input = torch.rand(1,3,32,32)

# 旧版pytorch.rfft()函数
fft = torch.rfft(input, 2, normalized=True, onesided=False)

# 新版 pytorch.fft.rfft2()函数
output = torch.fft.fft2(input, dim=(-2, -1))
output = torch.stack((output.real, output_new.imag), -1)

 

2、torch.irfft用法:torch.irfft(inputsignal_ndimnormalized=Falseonesided=Truesignal_sizes=None) → Tensor

Feature Request: torch.{fft, rfft} to torch.fft.{fft, rfft} porting guide · Issue #49637 · pytorch/pytorch (github.com)

try:定义新函数

def rfft(x, d):
t = torch.fft.fft(x, dim = (-d))
r = torch.stack((t.real, t.imag), -1)
return r
def irfft(x, d):
t = torch.fft.ifft(torch.complex(x[:,:,0], x[:,:,1]), dim = (-d))
return t.real

改:

# Vc = torch.rfft(v, 1, onesided=False)

Vc = rfft(v, 1)

# v = torch.irfft(V, 1, onesided=False)

v = irfft(V, 1)

 

3、看torch版本

import torch

torch.__version__

torch.cuda.is_available ()

 

标签:torch,False,07,fft,pytorch,22.11,rfft,input
From: https://www.cnblogs.com/lixinyu0310/p/16866027.html

相关文章

  • zzszoi20221107
    20221107zzszoi模拟赛记录作者zzafanti(FreshOrange)请勿转载这次比赛题目较简单但是思维难度高一点开题顺序\(A-C-B-D\)或\(C-A-D-B\)等等都可大概就是\(A,C\)......
  • 【日总结】2022.11.7
    看了看今天的题,T1给我整自闭了然后就打算光看看题不做了)然后发现除了T4都是洛谷主题库的题,难度黑-黄-蓝-红什么组题鬼才然后发现T2不会做,我现在的实力已经是不会......
  • Java学习——11.07
    今天晚上打算补一下英语和数学,于是早上就把Java学了。也不多,稀疏数组的创建,还原。同时也熟悉了数组的创建,打印。就很棒!!!!!!!!!直接上图吧,敲了一上午代码了。   下......
  • 007 Rust 异步编程,通过 join 执行 Future
    前言在之前我们主要介绍了通过await和block_on执行Future,但是这两种方式实际上都是顺序执行的方式。.await是在代码块中按顺序执行,会阻塞后面的代码,但是此时会让出线程;block......
  • 2022.11.07
    早上花了十几分钟成功在linux上用扩展background的settings搓出了background-cover的全屏背景效果。感谢这篇博客。P1016《\(\Theta(n^2)\),但\(n\le6\)》,模拟题。......
  • AtCoder Regular Contest 070&071
    ARC070只会个DQAQ,所以就合并到ARC071了。ARC070D-NoNeed给定\(n\)个整数\(a_1\sima_n\),对于\(a_i\),若原来所有包含\(a_i\)且和\(\geK\)的子集去掉\(......
  • 2022.11.06
    今天是装系统的一天。我一个究极废物花了整整一天终于把deepin塞进了我的新U盘里,并且愉快地获得了一个启动U盘。linux系统光标有点不习惯,自带的输入法有点阴间,但晚上下了......
  • 【流水】2022.11.06
    想到果然【流水】比【闲话】更像是我的风格今天回到学校了在操场小做了一下抗原(我还站错队了,尬)感谢六班大哥值了十几天的日宿舍里面非常干净,实在是感动不久就会乱起......
  • 000007 PHP 比较运算符
    <?phpheader('Content-Type:text/html;charset=utf-8');include'./assets/php/head.php';//比较运算符/***$a==$b等于true,如果类型转换后$a等于$b。*$a==......
  • ARC074E
    设\(f_{i,j,k}\)表示从\(i\)往前,第一个与\(a_i\)颜色不同的位置是\(j\),第一个颜色与\(a_i,a_j\)都不相同的位置是\(k\)的方案数,其中某个值为\(0\)表示这个......