Лучший формат вывода для хранения выходных данных, собранных после пакета

#python #list #numpy #pytorch

#python #Список #numpy #pytorch

Вопрос:

У меня есть предварительно обученная сеть сегментации, которая принимает (batch_size,5,224,224) тензор и выводит (batch_size,224,224) вектор признаков, скажем batch_features , первоначально тензор Torch, но может быть преобразован в массив numpy.

Существует несколько способов сбора тензора torch.

Вариант А : Использовать список

 val_features = []
val_features.extend(list(batch_features)
  

*** Вариант B : Использовать массив numpy*

 val_features = np.empty()
val_features = [*val_features, *batch_features]
  

В конце я хочу перебрать все эти массивы и выполнить некоторую постобработку. Какой формат данных будет работать лучше всего в этом случае?

Комментарии:

1. оба должны работать нормально, если вы просто хотите выполнить итерацию с явным циклом … однако циклы в python медленные, поэтому было бы неплохо избежать их и использовать уже существующие операции с массивами. Для этого было бы лучше использовать массивы numpy, но сначала проверьте, возможно ли то, что вы хотите сделать, при манипуляциях / операциях с тензором numpy

2. почему вы не используете batch_features.cpu().numpy()?