Почему я не могу преобразовать этот список в неровный тензор?

#python #tensorflow #tensorflow2.0 #tensorflow-datasets

#питон #тензорный поток #tensorflow2.0 #tensorflow-datasets

Вопрос:

Кто-нибудь может, пожалуйста, помочь мне с вопросом о тензорном потоке? У меня есть эта база данных аудиофайлов, и я вычислил для них соответствующие спектрограммы mel.

Аудиофайлы имеют разную длину, поэтому, следовательно, спектрограммы mel будут иметь разную форму. Наконец, я добавляю все эти спектрограммы mel в список с именем » mels»

Я пытаюсь преобразовать список «mels» в тензор, чтобы я мог добавить его в свой tf.data.Переменная Dataset, но она продолжает выдавать мне сообщение об ошибке, что непрямоугольная форма не может быть преобразована в тензор.

Итак, я попытался преобразовать его в тензор, используя неровные тензоры, но требуется много времени, чтобы преобразовать весь список mel в неровный тензор. Я попытался преобразовать список меньшей длины (имеющий только 3 mel-спектрограммы), и для завершения преобразования в неровный тензор потребовалось около 30 секунд, поэтому для списка, имеющего более 200 mel-спектрограмм, потребуется около получаса или что-то в этом роде, что не в порядке. Есть ли способ преобразовать этот список mel в тензор?

Вот небольшая часть кода на случай, если я допустил несколько глупых ошибок

###########

 def _load_spectrograms(fpaths):

fnames = []
mels = []
mags = []

for f in fpaths:
    
        fname = os.path.basename(f)
        mel = "mels/{}".format(fname.replace("wav", "npy"))
        mag = "mags/{}".format(fname.replace("wav", "npy"))
        mel = np.load(mel)
        mag = np.load(mag)
        # mel = tf.convert_to_tensor(mel)
        # mag = tf.convert_to_tensor(mag)
        # mel.set_shape((None, hp.n_mels * hp.r))
        # mag.set_shape((None, hp.n_fft // 2   1))
        fnames.append(fname)
        mels.append(mel)
        mags.append(mag)
       
return fnames, mels, mags

fnames, mels, mags = _load_spectrograms(fpaths)
mels = tf.ragged.constant(mels)
mags = tf.ragged.constant(mags)
 

########

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

1. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Traceback») в вопрос (не комментарий) в виде текста (не скриншота). Есть и другая полезная информация.

2. Подготовка и увеличение аудиоданных с помощью Tensorflow, найдите ссылку здесь . Спасибо