簡體   English   中英

無法在 nd4j 中創建復雜矩陣

[英]Can't create complex matrices in nd4j


我想使用方法`Nd4j.complexOnes(new int[]{1});` 在 nd4j 中創建一個復雜矩陣。
可悲的是,我收到以下錯誤:
 Exception in thread "main" java.lang.UnsupportedOperationException at org.nd4j.linalg.api.complex.BaseComplexNDArray.<init>(BaseComplexNDArray.java:244) at org.nd4j.linalg.api.complex.BaseComplexNDArray.<init>(BaseComplexNDArray.java:532) at org.nd4j.linalg.cpu.nativecpu.complex.ComplexNDArray.<init>(ComplexNDArray.java:227) at org.nd4j.linalg.cpu.nativecpu.CpuNDArrayFactory.createComplex(CpuNDArrayFactory.java:257) at org.nd4j.linalg.factory.BaseNDArrayFactory.createComplex(BaseNDArrayFactory.java:1558) at org.nd4j.linalg.factory.BaseNDArrayFactory.createComplex(BaseNDArrayFactory.java:1672) at org.nd4j.linalg.factory.BaseNDArrayFactory.complexOnes(BaseNDArrayFactory.java:1281) at org.nd4j.linalg.factory.Nd4j.complexOnes(Nd4j.java:5809) at de.GameOfReal.Multipliers.<init>(Multipliers.java:34) at de.GameOfReal.Multipliers.<init>(Multipliers.java:20) at de.GameOfReal.GameOfReal.<init>(GameOfReal.java:33) at de.GameOfReal.Main.<init>(Main.java:12) at de.GameOfReal.Main.main(Main.java:26)

我正在使用以下版本:

 implementation 'org.nd4j:nd4j-api:0.9.1' implementation 'org.nd4j:nd4j-native:0.9.1' implementation 'org.nd4j:nd4j-native-platform:0.9.1'

為了提供更多上下文,我想在普通 NDArray 上使用傅立葉變換,但任何 FFT function 都不起作用,我發現這是由於無法創建復雜矩陣造成的。

我希望我能提供足夠的細節,如果你有問題,我會馬上回答。

親切的問候,
菲利克斯

Nd4j 不再支持復雜的 ndarray。 我們曾經做過,但我們的很多操作都沒有直接支持它。 如果您想將 FFT 與 nd4j 一起使用,則必須進行某種近似或使用不同的庫並將 nd4j 數組轉換為 toDoubleMatrix()/toDoubleVector() 並返回。

請注意,如果您選擇 go 復制路線,這當然會導致一些性能損失,包括復制數據和一點 memory 開銷。

為那里的混亂道歉,但希望這能澄清為什么你看不到那么多文檔。

對於 memory 表示,復雜的 ndarray 通常只是布局為:實數、虛數、實數、虛數的組件

在 memory 緩沖區中。 沒有什么能阻止你創造它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM