AttributeError: 'list' object has no attribute 'size'
I'm trying to prepare some audio data for a Dataloader but I'm struggling with a few points. At the moment my data is organised into two lists inputs and target, which are both length 32, but have different dimensions for their elements; inputs[0].shape = (8, 3690288) (8 mono audio tracks) and target[0].shape = (2, 3690288) (a single stereo mix).
I've converted each array to a tensor by:
tensor_inputs = torch.Tensor(inputs)
tensor_target = torch.Tensor(target)

which seems to work: tensor_inputs.shape = torch.Size([32, 8, 3690288]). I've then tried to convert each of these to a melspectrogram:
melspectrogram = torchaudio.transforms.melspectrogram(
        sr=44100,
        n_fft=1024,
        hop_length=512,
        n_mels=64)

tensor_input_specs = []

for i in range(len(tensor_inputs)):
    spec = mel_spectrogram(tensor_inputs[i])
    tensor_input_specs.append(spec)
    
tensor_target_specs = []

for i in range(len(tensor_target)):
    spec = mel_spectrogram(tensor_target[i])
    tensor_target_specs.append(spec)

and then move these into a Dataloader by doing:
dataset = TensorDataset(tensor_input_specs,tensor_target_specs)
iter = DataLoader(dataset)

However I get the following error: AttributeError: 'list' object has no attribute 'size', which I imagine is due to the fact that I'm appending the spectrograms to a list, but I'm not sure how else to achieve this.
EDIT:
AttributeError                            Traceback (most recent call last)
C:\Users\BRUDAL~1\AppData\Local\Temp/ipykernel_24968/2240294361.py in &lt;module&gt;
     14     tensor_target_specs.append(spec)
     15 
---&gt; 16 dataset = TensorDataset(tensor_input_specs,tensor_target_specs)
     17 iter = DataLoader(dataset) # create your dataloader

~\anaconda3\lib\site-packages\torch\utils\data\dataset.py in __init__(self, *tensors)
    165 
    166     def __init__(self, *tensors: Tensor) -&gt; None:
--&gt; 167         assert all(tensors[0].size(0) == tensor.size(0) for tensor in tensors), &quot;Size mismatch between tensors&quot;
    168         self.tensors = tensors
    169 

~\anaconda3\lib\site-packages\torch\utils\data\dataset.py in &lt;genexpr&gt;(.0)
    165 
    166     def __init__(self, *tensors: Tensor) -&gt; None:
--&gt; 167         assert all(tensors[0].size(0) == tensor.size(0) for tensor in tensors), &quot;Size mismatch between tensors&quot;
    168         self.tensors = tensors
    169 

AttributeError: 'list' object has no attribute 'size'


The most straightforward method I've found is by stacking the list after the for loops, by using torch.stack:
tensor_input_specs = []

for i in range(len(tensor_inputs)):
    spec = mel_spectrogram(tensor_inputs[i])
    tensor_input_specs.append(spec)
    
tensor_input_specs = torch.stack(train_tensor_input_specs)

tensor_input_specs.shape

&gt;&gt;&gt; torch.size([32, 8, 64, 7208])

