Почему у меня размерность на выходе неправильная

Мне нужно на вывод из генератора получать спектрограмму размерностью (?,256,256,3)

Вот код генератора:

def generator(gen_df, batch_size):
while True:
    x_batch = []
    y_batch = []
    
    for i in range(batch_size):
        wav1, wav2 = gen_df.sample(1).values[0]

        wave1, sample_rate = torchaudio.load('sample_data/{}.wav'.format(wav1))
        wave2, sample_rate = torchaudio.load('sample_data/{}.wav'.format(wav2))
        
        specgram1 = torchaudio.transforms.Spectrogram()(wave1)
        specgram2 = torchaudio.transforms.Spectrogram()(wave2)

        specgram1 = torch.Size([256,256,3])
        specgram2 = torch.Size([256,256,3])
        
        x_batch += [specgram1]
        y_batch += [specgram2]

    x_batch = np.array(x_batch)
    y_batch = np.array(y_batch) 

    yield x_batch, y_batch

Но на выходе:

(?, 3)

Все записи в .wav c частотой 16000 и длительностью 5 секунд. До x_batch = np.array(x_batch) y_batch = np.array(y_batch) размерность спектрограммы (?, 201,401)

Меня интересует два момента

  1. Почему размерность так искажается, и в чем моя ошибка ?
  2. Можно ли сделать ресайз спектрограммы и как вообще это сделать правильно?

Ответы (0 шт):