1、cat
'
'
'
if index == 0:
noisy_wola_sec2 = noisy_wola_sec
clean_wola_sec2 = clean_wola_sec
noisy_wola_main2 = noisy_wola_main
clean_wola_main2 = clean_wola_main
else:
noisy_wola_sec2 = torch.cat((noisy_wola_sec2, noisy_wola_sec), 0)
clean_wola_sec2 = torch.cat((clean_wola_sec2, clean_wola_sec), 0)
noisy_wola_main2 = torch.cat((noisy_wola_main2, noisy_wola_main), 0)
clean_wola_main2 = torch.cat((clean_wola_main2, clean_wola_main), 0)
平均一次的时间 0.32737993749600012 s
torch.Size([24, 2, 200, 321])
2、stack
noisy_wola_sec2 = []
clean_wola_sec2 = []
noisy_wola_main2 = []
clean_wola_main2 = []
'
'
'
noisy_wola_sec2.append(noisy_wola_sec)
clean_wola_sec2.append(clean_wola_sec)
noisy_wola_main2.append(noisy_wola_main)
clean_wola_main2.append(clean_wola_main)
index += 1
noisy_wola_sec2 = torch.stack(noisy_wola_sec2,dim=0)
clean_wola_sec2 = torch.stack(clean_wola_sec2,dim=0)
noisy_wola_main2 = torch.stack(noisy_wola_main2,dim=0)
clean_wola_main2 = torch.stack(clean_wola_main2,dim=0)
平均一次的时间 0.23807710859812956 s
torch.Size([24, 2, 200, 321])
3、矩阵赋值
noisy_wola_sec2 = torch.zeros((24, 2, 200, 321))
clean_wola_sec2 = torch.zeros((24, 2, 200, 321))
noisy_wola_main2 = torch.zeros((24, 2, 200, 321))
clean_wola_main2 = torch.zeros((24, 2, 200, 321))
'
'
'
noisy_wola_sec2[index] = noisy_wola_sec
clean_wola_sec2[index] = clean_wola_sec
noisy_wola_main2[index] = noisy_wola_main
clean_wola_main2[index] = clean_wola_main
index += 1
平均一次的时间 0.20699568727310752 s
torch.Size([24, 2, 200, 321])
总结
虽然3是最快的但是不灵活推荐2,因为最后一个batch不是固定的大小可能每次循环到最后会报错。