• LSSViewTransformer 中每个类别的意思


    LSSViewTransformer 中每个类别的意思

    create_grid_infos

    import unittest
    import torch
    
    class Grid:
        def create_grid_infos(self, x, y, z, **kwargs):
            """生成网格信息,包括下限、间隔和大小。
    
            参数:
                x (tuple(float)): x 轴网格配置,格式为 (lower_bound, upper_bound, interval)。
                y (tuple(float)): y 轴网格配置,格式为 (lower_bound, upper_bound, interval)。
                z (tuple(float)): z 轴网格配置,格式为 (lower_bound, upper_bound, interval)。
                **kwargs: 其他潜在参数的容器。
            """
            self.grid_lower_bound = torch.Tensor([cfg[0] for cfg in [x, y, z]])  # 获取每个轴的下限
            self.grid_interval = torch.Tensor([cfg[2] for cfg in [x, y, z]])  # 获取每个轴的间隔
            self.grid_size = torch.Tensor([(cfg[1] - cfg[0]) / cfg[2]
                                           for cfg in [x, y, z]])  # 计算每个轴的网格大小
    
    class TestGrid(unittest.TestCase):
        def test_create_grid_infos(self):
            grid = Grid()
            x = (-51.2, 51.2, 0.8)
            y = (-51.2, 51.2, 0.8)
            z = (-5.0, 3.0, 0.1)
    
            grid.create_grid_infos(x, y, z)
    
            # 定义预期结果
            expected_lower_bound = torch.Tensor([-51.2, -51.2, -5.0])
            expected_interval = torch.Tensor([0.8, 0.8, 0.1])
            expected_size = torch.Tensor([128.0, 128.0, 80.0])
    
            # 使用断言验证方法的正确性
            self.assertTrue(torch.equal(grid.grid_lower_bound, expected_lower_bound))
            self.assertTrue(torch.equal(grid.grid_interval, expected_interval))
            self.assertTrue(torch.equal(grid.grid_size, expected_size))
    
    if __name__ == '__main__':
        unittest.main()
    

    详细解释:

    1. Grid 定义

      • create_grid_infos 方法生成网格的下限、间隔和大小,并将其存储在对象属性中。
      • 使用 torch.Tensor 将数据转换为 PyTorch 张量,以便进行数值计算。
    2. 测试类 TestGrid 定义

      • 测试方法 test_create_grid_infos 用于验证 create_grid_infos 方法的正确性。
      • 创建 Grid 类的实例并调用 create_grid_infos 方法。
      • 定义预期的结果,包括网格的下限、间隔和大小。
      • 使用 self.assertTrue(torch.equal(...)) 方法来检查实际结果是否与预期结果一致。
    3. 运行测试

      • 使用 unittest.main() 来自动发现并运行所有测试方法,并报告测试结果。

    create_frustum

    import torch
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    class Grid:
        def create_frustum(self,depth_cfg,input_size,downsample):
            """
            生成每个图像的frustum
            参数:
                depth_cfg: 深度配置元组,包含最小深度、最大深度和步长
                input_size: 输入图像的大小
                downsample: 下采样因子
            返回:
                frustum: 每个图像的frustum
            """
            # 输入图像大小
            H_in, W_in = input_size
            # 特征图像的高度和宽度
            H_feat, W_feat = H_in // downsample, W_in // downsample
            # 生成深度轴上的网络
            d = torch.arange(*depth_cfg, dtype=torch.float32).view(-1,1,1).expand(-1,H_feat,W_feat)
            self.D = d.shape[0]
            # 生成宽度方向的网路
            x = torch.linspace(0, W_in-1, W_feat, dtype=torch.float32).view(1,1,W_feat).expand
  • 相关阅读:
    C语言文件操作
    Python高效内存访问,memoryview这个神器你值得拥有!
    向量数据库库Milvus Cloud2.3 技术选型中性能、成本、扩展性是重点
    如何在业务数据分析过程中应用“机器学习”技术
    Linux常用shell操作指令
    【Echarts】入门
    Temporal介绍
    Selenium4+Python3系列(八) - Cookie、截图、单选框及复选框处理、富文本框、日历控件操作
    【无标题】
    2024长三角快递物流展,7月8日杭州迎来快递物流科技盛宴
  • 原文地址:https://blog.csdn.net/weixin_55982578/article/details/139439257