Я работаю с моделью классификации из GitHub KPConv. Для модели классификации (Modelnet40) я написал код, позволяющий сохранить выходные данные/прогноз модели в виде txt-файла вместе с координатами облака точек лидара. Однако это не работает. Он просто продолжает работать и не выполняет задачу, даже когда я уменьшаю количество тестовых файлов.
def predict(self, net, test_loader, output_file, config):
softmax = torch.nn.Softmax(1)
nc_tot = test_loader.dataset.num_classes
nc_model = config.num_classes
self.test_probs= np.zeros((test_loader.dataset.num_models, nc_model))
self.test_counts = np.zeros((test_loader.dataset.num_models, nc_model))
with open(output_file, 'w') as f:
while np.min(self.test_counts) < 5:
probs = []
targets = []
obj_inds = []
for batch in test_loader:
if "cuda" in self.device.type:
batch.to(self.device)
outputs = net(batch, config)
probs_batch = softmax(outputs).cpu().detach().numpy()
probs += [probs_batch]
targets +=[batch.labels.cpu().numpy()]
obj_inds += [batch.model_inds.cpu().numpy()]
for i, inds in enumerate(batch.model_inds.cpu().numpy()):
prediction = np.argmax(probs_batch)
f.write(f'{inds} {prediction}\n')
print("prediction save")
Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-kpconv