Я пытаюсь оптимизировать параметры функции, но потери остаются прежними
class BoardOptimizer(torch.nn.Module):
def __init__(self):
super().__init__()
# Initialize parameters with current values but make them trainable
self.highpass_freq = torch.nn.Parameter(torch.tensor(100.0), requires_grad=True)
def get_pedalboard(self):
highpass_freq = torch.clamp(self.highpass_freq, 20, 500)
board = Pedalboard([
HighpassFilter(cutoff_frequency_hz=float(highpass_freq)),
])
return board
def forward(self, sample_audio, sample_rate):
board = self.get_pedalboard()
music = board.process(sample_audio, sample_rate)
return music
model = BoardOptimizer()
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=1e-6)
print(type(criterion), y.shape, y_pred.shape)
for t in range(2000):
y_pred = torch.Tensor(model(x, 16000))
loss = criterion(y_pred, y)
if t % 100 == 99:
print(t, loss.item())
optimizer.zero_grad()
loss.requires_grad = True
loss.backward()
optimizer.step()
99 0.011413631960749626
199 0.011413631960749626
299 0.011413631960749626
399 0.011413631960749626
Я предположил, что ошибка произошла из-за того, что градиенты не были включены.
Попробовал распечатать это
for name, param in model.named_parameters():
print(f"{name}: grad = {param.grad}")
но я продолжал получать
highpass_freq: grad = None
Подробнее здесь: https://stackoverflow.com/questions/793 ... mains-same
Попытка использовать горелку для оптимизации параметров функции, но потери остаются прежними. ⇐ Python
Программы на Python
1737138996
Anonymous
Я пытаюсь оптимизировать параметры функции, но потери остаются прежними
class BoardOptimizer(torch.nn.Module):
def __init__(self):
super().__init__()
# Initialize parameters with current values but make them trainable
self.highpass_freq = torch.nn.Parameter(torch.tensor(100.0), requires_grad=True)
def get_pedalboard(self):
highpass_freq = torch.clamp(self.highpass_freq, 20, 500)
board = Pedalboard([
HighpassFilter(cutoff_frequency_hz=float(highpass_freq)),
])
return board
def forward(self, sample_audio, sample_rate):
board = self.get_pedalboard()
music = board.process(sample_audio, sample_rate)
return music
model = BoardOptimizer()
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=1e-6)
print(type(criterion), y.shape, y_pred.shape)
for t in range(2000):
y_pred = torch.Tensor(model(x, 16000))
loss = criterion(y_pred, y)
if t % 100 == 99:
print(t, loss.item())
optimizer.zero_grad()
loss.requires_grad = True
loss.backward()
optimizer.step()
99 0.011413631960749626
199 0.011413631960749626
299 0.011413631960749626
399 0.011413631960749626
Я предположил, что ошибка произошла из-за того, что градиенты не были включены.
Попробовал распечатать это
for name, param in model.named_parameters():
print(f"{name}: grad = {param.grad}")
но я продолжал получать
highpass_freq: grad = None
Подробнее здесь: [url]https://stackoverflow.com/questions/79365805/trying-to-use-torch-to-optimize-function-parameters-but-loss-remains-same[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия