(self)
| 147 | print(network(tfield)) |
| 148 | |
| 149 | def slice(self): |
| 150 | device = "cuda" |
| 151 | coords, colors, pcd = load_file("1.ply") |
| 152 | voxel_size = 0.02 |
| 153 | colors = torch.from_numpy(colors).float() |
| 154 | bcoords = batched_coordinates([coords / voxel_size], dtype=torch.float32) |
| 155 | tfield = TensorField(colors, bcoords, device=device) |
| 156 | |
| 157 | network = nn.Sequential( |
| 158 | MinkowskiLinear(3, 16), |
| 159 | MinkowskiBatchNorm(16), |
| 160 | MinkowskiReLU(), |
| 161 | MinkowskiLinear(16, 32), |
| 162 | MinkowskiBatchNorm(32), |
| 163 | MinkowskiReLU(), |
| 164 | MinkowskiToSparseTensor(), |
| 165 | MinkowskiConvolution(32, 64, kernel_size=3, stride=2, dimension=3), |
| 166 | MinkowskiConvolutionTranspose(64, 32, kernel_size=3, stride=2, dimension=3), |
| 167 | ).to(device) |
| 168 | |
| 169 | otensor = network(tfield) |
| 170 | ofield = otensor.slice(tfield) |
| 171 | self.assertEqual(len(tfield), len(ofield)) |
| 172 | self.assertEqual(ofield.F.size(1), otensor.F.size(1)) |
| 173 | ofield = otensor.cat_slice(tfield) |
| 174 | self.assertEqual(len(tfield), len(ofield)) |
| 175 | self.assertEqual(ofield.F.size(1), (otensor.F.size(1) + tfield.F.size(1))) |
| 176 | |
| 177 | def slice_no_duplicate(self): |
| 178 | coords, colors, pcd = load_file("1.ply") |
no test coverage detected