创建操作#
用于创建与可微分仿真兼容的 Genesis tensors 的函数。
概述#
在使用可微分仿真时,使用这些函数创建与梯度系统正确集成的 tensors。
创建 Tensors#
从 Python 值创建#
import genesis as gs
import torch
gs.init()
# 在正确的设备上创建 tensor
tensor = torch.tensor([1.0, 2.0, 3.0], device=gs.device, dtype=gs.tc_float)
# 启用梯度追踪
tensor = torch.tensor(
[1.0, 2.0, 3.0],
device=gs.device,
dtype=gs.tc_float,
requires_grad=True,
)
零/一 Tensors#
# 创建零 tensor
zeros = torch.zeros(10, device=gs.device, dtype=gs.tc_float)
# 创建一 tensor
ones = torch.ones(10, device=gs.device, dtype=gs.tc_float)
# 启用梯度追踪
zeros_grad = torch.zeros(10, device=gs.device, dtype=gs.tc_float, requires_grad=True)
随机 Tensors#
# 随机均匀分布 [0, 1)
rand = torch.rand(10, device=gs.device, dtype=gs.tc_float)
# 随机正态分布
randn = torch.randn(10, device=gs.device, dtype=gs.tc_float)
转换为 Genesis Tensors#
标准 PyTorch tensors 在与 scene state 结合时会变成 Genesis tensors:
# 标准 PyTorch tensor
external = torch.tensor([1.0, 2.0, 3.0], device=gs.device, requires_grad=True)
# 与 scene state 结合 -> Genesis tensor
pos = robot.get_pos()
combined = pos + external # 结果是 Genesis tensor