From 3a8a401d59afb6d637f55d538c81919f04a8ff65 Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:07:42 +0000 Subject: [PATCH 1/9] =?UTF-8?q?add=20mindscience/sciops/dft/README.=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=86README=E7=9B=B8=E5=85=B3=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhaopengnian2025 <13566980606@163.com> --- mindscience/sciops/dft/README | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 mindscience/sciops/dft/README diff --git a/mindscience/sciops/dft/README b/mindscience/sciops/dft/README new file mode 100644 index 000000000..accb6576e --- /dev/null +++ b/mindscience/sciops/dft/README @@ -0,0 +1,72 @@ +# Dft + +## Dft介绍 + +DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: + +- 实数离散傅里叶变换:RDFTn / IRDFTn +- 复数离散傅里叶变换:DFTn / IDFTn +- 一维离散余弦变换:DCT / IDCT +- 一维离散正弦变换:DST / IDST + + + +## Dft 算法流程 + +### DFT 的算法主要流程如下: + +1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 + +2.根据对应维度构造一维 DFT 矩阵。 + +3.将需要变换的轴移动到最后,以便执行矩阵乘法。 + +4.通过矩阵乘法执行一维变换,得到对应维度的输出。 + +5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 + +6.恢复轴顺序、拼接输出,返回最终张量 + + + +## sciops.Dft模块特点 + +### sciops模块中的Dft算子进行如下优化: + +1. 初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 +2. 环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 + + + +## 使用样例 + +- RDFT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import RDFTn + +x = ms.ops.rand((2, 32, 512)) +rdft = RDFTn(shape=x.shape[-2:]) +br, bi = rdft(x) + +print(br.shape, bi.shape) +``` + + + +- DCT使用样例 + + ```python + from mindscience.sciops import DCT + import mindspore as ms + + a = ms.ops.rand((4, 128)) + + dct = DCT(shape=(128,)) + b = dct(a) + ``` + + + + \ No newline at end of file -- Gitee From 628fe2c9c5bc4edf79bfbe643b70013b6a0e0500 Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:08:10 +0000 Subject: [PATCH 2/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20mind?= =?UTF-8?q?science/sciops/dft/README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mindscience/sciops/dft/README | 72 ----------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 mindscience/sciops/dft/README diff --git a/mindscience/sciops/dft/README b/mindscience/sciops/dft/README deleted file mode 100644 index accb6576e..000000000 --- a/mindscience/sciops/dft/README +++ /dev/null @@ -1,72 +0,0 @@ -# Dft - -## Dft介绍 - -DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: - -- 实数离散傅里叶变换:RDFTn / IRDFTn -- 复数离散傅里叶变换:DFTn / IDFTn -- 一维离散余弦变换:DCT / IDCT -- 一维离散正弦变换:DST / IDST - - - -## Dft 算法流程 - -### DFT 的算法主要流程如下: - -1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 - -2.根据对应维度构造一维 DFT 矩阵。 - -3.将需要变换的轴移动到最后,以便执行矩阵乘法。 - -4.通过矩阵乘法执行一维变换,得到对应维度的输出。 - -5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 - -6.恢复轴顺序、拼接输出,返回最终张量 - - - -## sciops.Dft模块特点 - -### sciops模块中的Dft算子进行如下优化: - -1. 初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 -2. 环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 - - - -## 使用样例 - -- RDFT使用样例 - -```python -import mindspore as ms -from mindscience.sciops import RDFTn - -x = ms.ops.rand((2, 32, 512)) -rdft = RDFTn(shape=x.shape[-2:]) -br, bi = rdft(x) - -print(br.shape, bi.shape) -``` - - - -- DCT使用样例 - - ```python - from mindscience.sciops import DCT - import mindspore as ms - - a = ms.ops.rand((4, 128)) - - dct = DCT(shape=(128,)) - b = dct(a) - ``` - - - - \ No newline at end of file -- Gitee From 0de33f2778ceefc8507a65dd6b563638599bbac1 Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:09:12 +0000 Subject: [PATCH 3/9] add mindscience/sciops/dft. Signed-off-by: zhaopengnian2025 <13566980606@163.com> --- mindscience/sciops/dft/README.md | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 mindscience/sciops/dft/README.md diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md new file mode 100644 index 000000000..63b03d6b3 --- /dev/null +++ b/mindscience/sciops/dft/README.md @@ -0,0 +1,72 @@ +# Dft + +## Dft介绍 + +DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: + +- 实数离散傅里叶变换:RDFTn / IRDFTn +- 复数离散傅里叶变换:DFTn / IDFTn +- 一维离散余弦变换:DCT / IDCT +- 一维离散正弦变换:DST / IDST + + + +## Dft 算法流程 + +### DFT 的算法主要流程如下: + +1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 + +2.根据对应维度构造一维 DFT 矩阵。 + +3.将需要变换的轴移动到最后,以便执行矩阵乘法。 + +4.通过矩阵乘法执行一维变换,得到对应维度的输出。 + +5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 + +6.恢复轴顺序、拼接输出,返回最终张量 + + + +## sciops.Dft模块特点 + +### sciops模块中的Dft算子进行如下优化: + +1. 初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 +2. 环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 + + + +## 使用样例 + +- RDFT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import RDFTn + +x = ms.ops.rand((2, 32, 512)) +rdft = RDFTn(shape=x.shape[-2:]) +br, bi = rdft(x) + +print(br.shape, bi.shape) +``` + + + +- DCT使用样例 + + ```python + from mindscience.sciops import DCT + import mindspore as ms + + a = ms.ops.rand((4, 128)) + + dct = DCT(shape=(128,)) + b = dct(a) + ``` + + + + -- Gitee From 8c0c2dd15dc27a0134b7983176e75b8dce8bac1c Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:10:30 +0000 Subject: [PATCH 4/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20mind?= =?UTF-8?q?science/sciops/dft/README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mindscience/sciops/dft/README.md | 72 -------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 mindscience/sciops/dft/README.md diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md deleted file mode 100644 index 63b03d6b3..000000000 --- a/mindscience/sciops/dft/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# Dft - -## Dft介绍 - -DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: - -- 实数离散傅里叶变换:RDFTn / IRDFTn -- 复数离散傅里叶变换:DFTn / IDFTn -- 一维离散余弦变换:DCT / IDCT -- 一维离散正弦变换:DST / IDST - - - -## Dft 算法流程 - -### DFT 的算法主要流程如下: - -1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 - -2.根据对应维度构造一维 DFT 矩阵。 - -3.将需要变换的轴移动到最后,以便执行矩阵乘法。 - -4.通过矩阵乘法执行一维变换,得到对应维度的输出。 - -5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 - -6.恢复轴顺序、拼接输出,返回最终张量 - - - -## sciops.Dft模块特点 - -### sciops模块中的Dft算子进行如下优化: - -1. 初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 -2. 环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 - - - -## 使用样例 - -- RDFT使用样例 - -```python -import mindspore as ms -from mindscience.sciops import RDFTn - -x = ms.ops.rand((2, 32, 512)) -rdft = RDFTn(shape=x.shape[-2:]) -br, bi = rdft(x) - -print(br.shape, bi.shape) -``` - - - -- DCT使用样例 - - ```python - from mindscience.sciops import DCT - import mindspore as ms - - a = ms.ops.rand((4, 128)) - - dct = DCT(shape=(128,)) - b = dct(a) - ``` - - - - -- Gitee From 88badba5f3f08d89720da89715175575703c26e2 Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:11:51 +0000 Subject: [PATCH 5/9] add mindscience/sciops/dft. Signed-off-by: zhaopengnian2025 <13566980606@163.com> --- mindscience/sciops/dft/README.md | 73 ++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 mindscience/sciops/dft/README.md diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md new file mode 100644 index 000000000..4c5503e0c --- /dev/null +++ b/mindscience/sciops/dft/README.md @@ -0,0 +1,73 @@ +# Dft + +## Dft介绍 + +DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: + +- 实数离散傅里叶变换:RDFTn / IRDFTn +- 复数离散傅里叶变换:DFTn / IDFTn +- 一维离散余弦变换:DCT / IDCT +- 一维离散正弦变换:DST / IDST + + + +## Dft 算法流程 + +DFT 的算法主要流程如下: + +1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 + +2.根据对应维度构造一维 DFT 矩阵。 + +3.将需要变换的轴移动到最后,以便执行矩阵乘法。 + +4.通过矩阵乘法执行一维变换,得到对应维度的输出。 + +5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 + +6.恢复轴顺序、拼接输出,返回最终张量 + + + +## sciops.Dft模块特点 + +sciops模块中的Dft算子进行如下优化: + +1.初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 + +2.环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 + + + +## 使用样例 + +- RDFT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import RDFTn + +x = ms.ops.rand((2, 32, 512)) +rdft = RDFTn(shape=x.shape[-2:]) +br, bi = rdft(x) + +print(br.shape, bi.shape) +``` + + + +- DCT使用样例 + + ```python + from mindscience.sciops import DCT + import mindspore as ms + + a = ms.ops.rand((4, 128)) + + dct = DCT(shape=(128,)) + b = dct(a) + ``` + + + + -- Gitee From 83596d0c482ddca50524d29e6759078684a2a7c4 Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:20:29 +0000 Subject: [PATCH 6/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20mind?= =?UTF-8?q?science/sciops/dft/README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mindscience/sciops/dft/README.md | 73 -------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 mindscience/sciops/dft/README.md diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md deleted file mode 100644 index 4c5503e0c..000000000 --- a/mindscience/sciops/dft/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Dft - -## Dft介绍 - -DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: - -- 实数离散傅里叶变换:RDFTn / IRDFTn -- 复数离散傅里叶变换:DFTn / IDFTn -- 一维离散余弦变换:DCT / IDCT -- 一维离散正弦变换:DST / IDST - - - -## Dft 算法流程 - -DFT 的算法主要流程如下: - -1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 - -2.根据对应维度构造一维 DFT 矩阵。 - -3.将需要变换的轴移动到最后,以便执行矩阵乘法。 - -4.通过矩阵乘法执行一维变换,得到对应维度的输出。 - -5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 - -6.恢复轴顺序、拼接输出,返回最终张量 - - - -## sciops.Dft模块特点 - -sciops模块中的Dft算子进行如下优化: - -1.初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 - -2.环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 - - - -## 使用样例 - -- RDFT使用样例 - -```python -import mindspore as ms -from mindscience.sciops import RDFTn - -x = ms.ops.rand((2, 32, 512)) -rdft = RDFTn(shape=x.shape[-2:]) -br, bi = rdft(x) - -print(br.shape, bi.shape) -``` - - - -- DCT使用样例 - - ```python - from mindscience.sciops import DCT - import mindspore as ms - - a = ms.ops.rand((4, 128)) - - dct = DCT(shape=(128,)) - b = dct(a) - ``` - - - - -- Gitee From 7aa086220a6f190d11c4436c2cc241cf4df05606 Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:21:09 +0000 Subject: [PATCH 7/9] add mindscience/sciops/dft. Signed-off-by: zhaopengnian2025 <13566980606@163.com> --- mindscience/sciops/dft/README.md | 64 ++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 mindscience/sciops/dft/README.md diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md new file mode 100644 index 000000000..3f477d9d3 --- /dev/null +++ b/mindscience/sciops/dft/README.md @@ -0,0 +1,64 @@ +# Dft + +## Dft介绍 + +DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: + +- 实数离散傅里叶变换:RDFTn / IRDFTn +- 复数离散傅里叶变换:DFTn / IDFTn +- 一维离散余弦变换:DCT / IDCT +- 一维离散正弦变换:DST / IDST + + + +## Dft 算法流程 + +DFT 的算法主要流程如下: + +1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 + +2.根据对应维度构造一维 DFT 矩阵。 + +3.将需要变换的轴移动到最后,以便执行矩阵乘法。 + +4.通过矩阵乘法执行一维变换,得到对应维度的输出。 + +5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 + +6.恢复轴顺序、拼接输出,返回最终张量 + + + +## sciops.Dft模块特点 + +sciops模块中的Dft算子进行如下优化: + +1.初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 + +2.环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 + + + +## 使用样例 + +- RDFT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import RDFTn + +x = ms.ops.rand((2, 32, 512)) +rdft = RDFTn(shape=x.shape[-2:]) +br, bi = rdft(x) +``` + +- DCT使用样例 + +```pythonimport mindspore as ms +from mindscience.sciops import DCT + +a = ms.ops.rand((4, 128)) +dct = DCT(shape=(128,)) +b = dct(a) +``` + -- Gitee From 31d5e31b8a849719ef2fde298551a99dba8dda6c Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:22:26 +0000 Subject: [PATCH 8/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20mind?= =?UTF-8?q?science/sciops/dft/README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mindscience/sciops/dft/README.md | 64 -------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 mindscience/sciops/dft/README.md diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md deleted file mode 100644 index 3f477d9d3..000000000 --- a/mindscience/sciops/dft/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# Dft - -## Dft介绍 - -DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: - -- 实数离散傅里叶变换:RDFTn / IRDFTn -- 复数离散傅里叶变换:DFTn / IDFTn -- 一维离散余弦变换:DCT / IDCT -- 一维离散正弦变换:DST / IDST - - - -## Dft 算法流程 - -DFT 的算法主要流程如下: - -1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 - -2.根据对应维度构造一维 DFT 矩阵。 - -3.将需要变换的轴移动到最后,以便执行矩阵乘法。 - -4.通过矩阵乘法执行一维变换,得到对应维度的输出。 - -5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 - -6.恢复轴顺序、拼接输出,返回最终张量 - - - -## sciops.Dft模块特点 - -sciops模块中的Dft算子进行如下优化: - -1.初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 - -2.环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 - - - -## 使用样例 - -- RDFT使用样例 - -```python -import mindspore as ms -from mindscience.sciops import RDFTn - -x = ms.ops.rand((2, 32, 512)) -rdft = RDFTn(shape=x.shape[-2:]) -br, bi = rdft(x) -``` - -- DCT使用样例 - -```pythonimport mindspore as ms -from mindscience.sciops import DCT - -a = ms.ops.rand((4, 128)) -dct = DCT(shape=(128,)) -b = dct(a) -``` - -- Gitee From c7aaa3858ab762750b2b64c9a5aaf5407fb30cdf Mon Sep 17 00:00:00 2001 From: zhaopengnian2025 Date: Sun, 30 Nov 2025 13:24:08 +0000 Subject: [PATCH 9/9] add mindscience/sciops/dft. Signed-off-by: zhaopengnian2025 <13566980606@163.com> --- mindscience/sciops/dft/README.md | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 mindscience/sciops/dft/README.md diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md new file mode 100644 index 000000000..ae7bae3ab --- /dev/null +++ b/mindscience/sciops/dft/README.md @@ -0,0 +1,65 @@ +# Dft + +## Dft介绍 + +DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: + +- 实数离散傅里叶变换:RDFTn / IRDFTn +- 复数离散傅里叶变换:DFTn / IDFTn +- 一维离散余弦变换:DCT / IDCT +- 一维离散正弦变换:DST / IDST + + + +## Dft 算法流程 + +DFT 的算法主要流程如下: + +1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 + +2.根据对应维度构造一维 DFT 矩阵。 + +3.将需要变换的轴移动到最后,以便执行矩阵乘法。 + +4.通过矩阵乘法执行一维变换,得到对应维度的输出。 + +5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 + +6.恢复轴顺序、拼接输出,返回最终张量 + + + +## sciops.Dft模块特点 + +sciops模块中的Dft算子进行如下优化: + +1.初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 + +2.环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 + + + +## 使用样例 + +- RDFT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import RDFTn + +x = ms.ops.rand((2, 32, 512)) +rdft = RDFTn(shape=x.shape[-2:]) +br, bi = rdft(x) +``` + +- DCT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import DCT + +a = ms.ops.rand((4, 128)) +dct = DCT(shape=(128,)) +b = dct(a) +``` + -- Gitee