mindflow.cell.SNO3D
- class mindflow.cell.SNO3D(in_channels, out_channels, hidden_channels=64, num_sno_layers=3, data_format='channels_first', transforms=None, kernel_size=5, activation='gelu', compute_dtype=mstype.float32)[源代码]
三维谱神经算子,包含一个提升层(编码器)、多个谱变换层(谱空间的线性变换)和一个投影层(解码器)。参见基类文档
mindflow.cell.SNO
。样例:
>>> import numpy as np >>> from mindspore import Tensor >>> import mindspore.common.dtype as mstype >>> from mindflow.cell import SNO3D >>> grid_size, grid_size_z, modes = 64, 40, 12 >>> matr = Tensor(np.random.rand(modes, grid_size), mstype.float32) >>> inv_matr = Tensor(np.random.rand(grid_size, modes), mstype.float32) >>> matr_1 = Tensor(np.random.rand(modes, grid_size_z), mstype.float32) >>> inv_matr_1 = Tensor(np.random.rand(grid_size_z, modes), mstype.float32) >>> net = SNO3D(in_channels=10, out_channels=1, >>> transforms=[[matr, inv_matr]] * 2 + [[matr_1, inv_matr_1]]) >>> x = Tensor(np.random.rand(10, 10, resolution, resolution, grid_size_z), mstype.float32) >>> y = net(x) >>> print(x.shape, y.shape) (10, 10, 64, 64, 40) (10, 1, 64, 64, 40)