[英]Can't create complex matrices in 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.