Как я могу сделать свою программу более эффективной с оперативной памятью?

#python #ram #librosa

Вопрос:

Я использую набор данных, содержащий 750 звуковых сегментов, и мне нужно загрузить их все на python. Для этого я использую librosa.

Общий размер всех файлов составляет 28 ГБ. Когда я запускаю программу для их загрузки, оперативная память в моей среде (google colab) заполняется. Я не могу загрузить их все.

Я знаю, что у google colab есть возможность добавить больше оперативной памяти за деньги, но есть ли у меня надежда сделать программу более эффективной при меньшем использовании оперативной памяти?

Сегмент для справки:

 mixture = [] drums = [] bass = [] accompaniment = [] vocals = [] for i in range(150):  mixture_wav = df.at[i, 'mixture']  drums_wav = df.at[i, 'drums']  bass_wav = df.at[i, 'bass']  accompaniment_wav = df.at[i, 'accompaniment']  vocals_wav = df.at[i, 'vocals']    y_mixture, sr = lb.load(path   str(i   1)   '/'  mixture_wav)  y_drums, sr = lb.load(path   str(i   1)   '/'  drums_wav)  y_bass, sr = lb.load(path   str(i   1)   '/'  bass_wav)  y_accompaniment, sr = lb.load(path   str(i   1)   '/'  accompaniment_wav)  y_vocals, sr = lb.load(path   str(i   1)   '/'  vocals_wav)    mixture.append(y_mixture)  drums.append(y_drums)  bass.append(y_bass)  accompaniment.append(y_vocals)  vocals.append(y_vocals)  

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

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

2. Да, больше контекста здесь помогло бы. Расскажите нам больше о том, что вы пытаетесь сделать, и вы, вероятно, получите предложения о том, как это сделать, не загружая все эти данные сразу.

3. Зачем вам нужно загружать все файлы в оперативную память? Можно ли сжать эти файлы? Чего вы пытаетесь достичь?