Страница 1 из 1

Вопрос знатокам про PyTorch

Добавлено: Вт ноя 05, 2024 6:25 am
Uzito
Есть типа функция, которая вычисляет mel spectrogram loss.

Код: Выделить всё

class MelSpectrogramLoss(torch.nn.Module):
    ...
    def forward(self, real, fake): 
        # real: torch(B, 1, T) , fake: torch(B, 1, T)
        real_mels = self.mel_spectrogram(real)
        fake_mels = self.mel_spectrogram(fake)
        real_logmels = torch.log(real_mels.clamp(min=1e-5).pow(1)) / self.log_base
        fake_logmels = torch.log(fake_mels.clamp(min=1e-5).pow(1)) / self.log_base
        loss = torch.nn.functional.l1_loss(real_logmels, fake_logmels)
    return loss
Есть ли какая нибудь разница какой параметр будет ей передан первым - сгенерированный генератором сигнал или настоящий, для обновления градиентов при дальнейшем .backward вызове?

Re: Вопрос знатокам про PyTorch

Добавлено: Вт ноя 05, 2024 12:11 pm
caltrain
а вы покупаете или продаете? (у вас там генератор или дискриминатор)
я бы предпочел первым real, если участвует кеш.


с точки зрения отладки, лучше сначала пускать fake, особенно, если он статичный, чтобы происходил fail-fast.
тогда под него можно писать юнит тест. и прежде чем запускать все-все-все и оно будет падать, первый вопрос - базовый тест прошел?

Re: Вопрос знатокам про PyTorch

Добавлено: Вт ноя 05, 2024 2:07 pm
Uzito
caltrain писал(а): Вт ноя 05, 2024 12:11 pm а вы покупаете или продаете? (у вас там генератор или дискриминатор)
я бы предпочел первым real, если участвует кеш.
с точки зрения отладки, лучше сначала пускать fake, особенно, если он статичный, чтобы происходил fail-fast.
тогда под него можно писать юнит тест. и прежде чем запускать все-все-все и оно будет падать, первый вопрос - базовый тест прошел?
Это GAN, там обучаются оба. Про базовый тест вопрос не понял. Функция возвращает одинаковый результат в независимости от порядка параметров. Мне просто парят что очень важно чтобы первым параметром был настоящий сигнал, типа ведь с ним сравнивают сгенерированный. Мне же интересно что там происходит за ширмой с градиентами что так важно первым параметром в l1_loss отдавать реальный сигнал. Или это совсем не важно?

Re: Вопрос знатокам про PyTorch

Добавлено: Пт ноя 08, 2024 12:10 pm
Sergunka
Uzito писал(а): Вт ноя 05, 2024 2:07 pm
caltrain писал(а): Вт ноя 05, 2024 12:11 pm а вы покупаете или продаете? (у вас там генератор или дискриминатор)
я бы предпочел первым real, если участвует кеш.
с точки зрения отладки, лучше сначала пускать fake, особенно, если он статичный, чтобы происходил fail-fast.
тогда под него можно писать юнит тест. и прежде чем запускать все-все-все и оно будет падать, первый вопрос - базовый тест прошел?
Это GAN, там обучаются оба. Про базовый тест вопрос не понял. Функция возвращает одинаковый результат в независимости от порядка параметров. Мне просто парят что очень важно чтобы первым параметром был настоящий сигнал, типа ведь с ним сравнивают сгенерированный. Мне же интересно что там происходит за ширмой с градиентами что так важно первым параметром в l1_loss отдавать реальный сигнал. Или это совсем не важно?
Насколько я помню там открытый код можно посмотреть.

У меня сын недавно правил код у них и даже статью написал по этому поводу
https://savvavy.wordpress.com/2024/07/2 ... te-finder/

Он сегодня зайдет к нам я спрошу Ваш вопрос у него, что он посоветует. Или просто тупо можете ему в линкидине написать на русском языке или английском.
https://www.linkedin.com/in/savva-v-a8a86a109/

Re: Вопрос знатокам про PyTorch

Добавлено: Пт ноя 08, 2024 2:00 pm
Uzito
Sergunka писал(а): Пт ноя 08, 2024 12:10 pm Насколько я помню там открытый код можно посмотреть.
Там надо лезть в сишный код, а там без бутылки не разобраться. Да и в общем-то не особо важно, переменные поставил как хотели для красоты. Не думаю что это на что-то влияет, так как функция вычисляет абсолютные значения разницы.