sponge.core.RunOneStepCell
- class sponge.core.RunOneStepCell(energy: WithEnergyCell = None, force: WithForceCell = None, optimizer: Optimizer = None, steps: int = 1, sens: float = 1.0, **kwargs)[源代码]
运行一步模拟的神经网络层。这一层包裹了 energy , force 和 optimizer 。在construct函数里将会生成一张反向图来更新仿真系统的原子坐标。
- 参数:
energy (
sponge.core.WithEnergyCell
) - 包含了有势能函数的模拟系统的神经网络层。默认值:None
。该神经网络层用于计算并返回系统在当前坐标处的势能值。force (
sponge.core.WithForceCell
) - 包含了有原子力函数的模拟系统的神经网络层。默认值:None
。该神经网络层用于计算并返回系统在当前坐标处的力值。optimizer (mindspore.nn.Optimizer, 可选) - 模拟的优化器。默认值:
None
。steps (int, 可选) - 模拟的步数。默认值:
1
。sens (float, 可选) - 作为反向传播的输入要填充的缩放数。默认值:
1.0
。kwargs (dict) - 关键字参数。
- 输入:
*inputs (Tuple(Tensor)) -
sponge.core.WithEnergyCell
的输入Tensors的tuple。
- 输出:
energy (Tensor) - 能量。shape为 \((B, 1)\) 。数据类型为float。这里的B是batch size。
force (Tensor) - 原子力。shape为 \((B, A, D)\) 。数据类型为float。这里的 \(B\) 是batch size, \(A\) 是原子数量, \(D\) 是空间维度,通常为3。
- 支持平台:
Ascend
GPU
样例:
>>> from sponge import WithEnergyCell, RunOneStepCell, Sponge >>> from sponge.system import Molecule >>> from sponge.potential.forcefield import ForceField >>> from sponge.optimizer import Updater >>> system = Molecule(template='water.tip3p.yaml') >>> potential = ForceField(system, parameters='SPCE') >>> optimizer = Updater(system, controller=None, time_step=1e-3) >>> sys_with_ene = WithEnergyCell(system, potential) >>> one_step = RunOneStepCell(sys_with_ene, optimizer=optimizer) md = Sponge(one_step)
- property bias
整个偏置势的Tensor。
- 返回:
Tensor,shape为 (B, 1) ,数据类型为float。
- property bias_function
偏置势函数的网络层。
- 返回:
Cell,偏置势函数。
- property bias_names
偏置势能的名字。
- 返回:
list[str],偏置势能的名字列表。
- property biases
偏置势的组成部分的Tensor。
- 返回:
Tensor,shape为 (B, V) ,数据类型为float。
- property energies
势能组成部分的Tensor。
- 返回:
Tensor,shape为 (B, U) ,数据类型为float。
- property energy_cutoff
WithEnergyCell 中邻居列表的截断距离。
- 返回:
Tensor, WithEnergyCell 中邻居列表的截断距离。
- property energy_names
能量项的名字。
- 返回:
list[str],能量项的名字列表。
- property energy_unit
能量单位。
- 返回:
str,能量单位。
- property force_cutoff
WithForceCell 中邻居列表的截断距离。
- 返回:
Tensor, WithForceCell 中邻居列表的截断距离。
- property length_unit
长度单位。
- 返回:
str,长度单位。
- property neighbour_list_pace
更新邻居列表所需的step。
- 返回:
int,更新邻居列表所需的step数。
- property num_biases
偏置势能 \(V\) 的数量。
- 返回:
int,偏置势能的数量。
- property num_energies
能量项 \(U\) 的数量。
- 返回:
int,能量项的数量。