Browse Source

梯度计算 安全归一化 , 梯度可能会很小

final
mckay 4 weeks ago
parent
commit
f49da7c255
  1. 4
      brep2sdf/networks/network.py

4
brep2sdf/networks/network.py

@ -223,9 +223,9 @@ def gradient(inputs, outputs):
# 修正维度切片方式
if points_grad is None:
return torch.zeros_like(inputs[:, -3:]) # 处理空梯度情况
#logger.debug(f"points_grad:{points_grad},shape:{points_grad.shape}")
# 添加安全截取和归一化
coord_grad = points_grad[:, -3:] if points_grad.shape[1] >=3 else points_grad
coord_grad = coord_grad / (coord_grad.norm(dim=-1, keepdim=True) + 1e-6) # 安全归一化
coord_grad = coord_grad / (coord_grad.norm(dim=-1, keepdim=True) + 1e-16) # 安全归一化
return coord_grad
Loading…
Cancel
Save