目的是把测试结果统一存储到一个numpy里面。每个测试batchsize是64,输出结果是64*321维向量
def get_attrs_output(model, dataloaders):
a=[] #建立一个空链表
img_nums = len(dataloaders.dataset.imgs)
print(img_nums)
count = 0
for data in dataloaders:
img, label = data
label = torch.Tensor(test_attr_label[label, :])
label = label.type(torch.LongTensor)
n, c, h, w = img.size()
count += n
print(count)
if(use_gpu):
input_img = Variable(img.cuda())
else:
input_img = Variable(img)
outputs = model(input_img)
# print(outputs)#64*321
outputs = outputs.data.cpu().numpy()#转换成numpy类型的
a.append(outputs)把每个batchsize的数据存储到a里面
# print(len(a))
b = np.concatenate(a)#能够一次完成多个数组的拼接。
print(b.shape)#可以查看b.的维数,type(b)可以查看b的类型
return b