sponge.core.RunOneStepCell ============================== .. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r2.2/resource/_static/logo_source.svg :target: https://gitee.com/mindspore/mindscience/blob/r0.5/MindSPONGE/docs/api/api_python/core/sponge.core.RunOneStepCell.rst :alt: 查看源文件 .. py: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** (WithEnergyCell) - 包含了有势能函数的模拟系统的神经网络层。默认值:"None"。该神经网络层用于计算并返回系统在当前坐标处的势能值。 - **force** (WithForceCell) - 包含了有原子力函数的模拟系统的神经网络层。默认值:"None"。该神经网络层用于计算并返回系统在当前坐标处的力值。 - **optimizer** (Optimizer) - 模拟的优化器。默认值:"None"。 - **steps** (int) - 模拟的步数。默认值:1.0。 - **sens** (float) - 作为反向传播的输入要填充的缩放数。默认值:1.0。 - **kwargs** (dict) - 其他参数。 输入: - **\*inputs** (Tuple(Tensor)) - `WithEnergyCell` 的输入Tensors的tuple。 输出: - 整体的势能,shape为 `(B, 1)` 的Tensor,数据类型为float。 - 原子力,shape为 `(B, A, D)` 的Tensor,数据类型为float。 .. note:: B: batch size,比如分子模拟中walker的数量。 A: 分子模拟中原子的数量。 D: 分子模拟中的空间维度,通常是3。 .. py:method:: bias() :property: 整个偏置势的Tensor。 返回: Tensor,shape为 `(B, 1)` ,数据类型为float。 .. py:method:: bias_function() :property: 偏置势函数的网络层。 返回: Cell,偏置势函数。 .. py:method:: bias_names() :property: 偏置势能的名字。 返回: list[str],偏置势能的名字列表。 .. py:method:: biases() :property: 偏置势的组成部分的Tensor。 返回: Tensor,shape为 `(B, V)` ,数据类型为float。 .. py:method:: energies() :property: 势能组成部分的Tensor。 返回: Tensor,shape为 `(B, U)` ,数据类型为float。 .. py:method:: energy_cutoff() :property: `WithEnergyCell` 中邻居列表的截断距离。 返回: Tensor, `WithEnergyCell` 中邻居列表的截断距离。 .. py:method:: energy_names() :property: 能量项的名字。 返回: list[str],能量项的名字列表。 .. py:method:: energy_unit() :property: 能量单位。 返回: str,能量单位。 .. py:method:: force_cutoff() :property: `WithForceCell` 中邻居列表的截断距离。 返回: Tensor, `WithForceCell` 中邻居列表的截断距离。 .. py:method:: length_unit() :property: 长度单位。 返回: str,长度单位。 .. py:method:: neighbour_list_pace() :property: 更新邻居列表所需的step。 返回: int,更新邻居列表所需的step数。 .. py:method:: num_biases() :property: 偏置势能 :math:`V` 的数量。 返回: int,偏置势能的数量。 .. py:method:: num_energies() :property: 能量项 :math:`U` 的数量。 返回: int,能量项的数量。 .. py:method:: set_pbc_grad(value: bool) 设定是否计算周期性边界条件箱的梯度。 参数: - **value** (bool) - 用于判断是否计算周期性边界条件箱的梯度的标志符。 .. py:method:: set_steps(steps: int) 设置JIT的步数。 参数: - **steps** (int) - JIT的步数。 .. py:method:: update_bias(step: int) 更新偏置势。 参数: - **step** (int) - 更新偏置势的仿真step。 .. py:method:: update_modifier(step: int) 更新力修饰器。 参数: - **step** (int) - 更新力修饰器的仿真step。 .. py:method:: update_neighbour_list() 更新邻居列表。 .. py:method:: update_wrapper(step: int) 更新能量包。 参数: - **step** (int) - 更新能量包的仿真step。