model.parameters () не оновлюється в лінійній регресії з Pytorch

Я новачок у глибокому навчанні з Pytorch. Тут я використовую набір даних про ціни на житло від Kaggle. Я спробував взяти вибірку з перших 50 рядків. Але model.parameters () не оновлюється, коли я виконую навчання. Хто-небудь може допомогти?

python

1 відповідь 1

Вага оновлюється, але ви неправильно його фіксували. model.weight.data - тензор факела, але ім'я змінної є лише посиланням, тому установка w = model.weight.data створює не копію, а інше посилання на об'єкт. Отже, зміна model.weight.data міняла б і w.

Отже, встановивши w = model.weight.data та w_new = model.weight дані в різних частинах циклів, це означає, що ви присвоюєте два посилання одному і тому ж об'єкту, роблячи їх значення рівним у будь-який час.

Для того, щоб оцінити зміну ваги моделі, надрукуйте (model.weight.data) до і після циклу (оскільки у вас є один лінійний шар з 10 параметрів, це все ще можна зробити), або просто встановіть w = model.weight .data.clone (). У цьому випадку ваш результат буде:

Ось приклад, який показує, що ваші ваги змінюються: