Нахождение коэффициента «а» линейного уравнения вида Y = aXPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Нахождение коэффициента «а» линейного уравнения вида Y = aX

Сообщение Anonymous »


Предположим, у меня есть два набора, X и Y, и некоторый заранее известный коэффициент «а».

Набор Y зависит от X и «a» следующим образом: Y = аХ

импортировать numpy как np а = 2 X = np.random.randint(1, 10, 10) Y = а * Х печать(f"{X = }") печать(f"{Y = }") >>> X = массив([9, 2, 7, 8, 8, 9, 5, 8, 4, 1]) >>> Y = массив([18, 4, 14, 16, 16, 18, 10, 16, 8, 2]) Задача: Используя набор инструментов PyTorch, найдите коэффициент «a», используя только X и Y

Что я пытался сделать и в чем проблема:

Я пытаюсь передать X в ​​модель и ожидаю получить от нее коэффициент a_pred. Затем я нахожу y_pred = a_pred * X. Наконец я сравниваю y и y_pred. Очевидно, что модель не «видит» взаимосвязь между a_pred, «a», y_pred и Y. Отсюда вопрос: какой должна быть архитектура модели, чтобы она могла найти правильный коэффициент «а»?

Я только начинаю изучать PyTorch и, к сожалению, пока не нашел однозначного ответа на этот вопрос. Пока мне кажется, что решение этой проблемы должно быть как-то связано с GAN, но как именно я, к сожалению, не знаю

Мой текущий код:
импортировать numpy как np из модуля импорта torch.nn, линейного, ReLU, последовательного, CrossEntropyLoss из torch.optim импортировать Адама из импорта факела from_numpy из случайного импорта randint класс FindParameter (Модуль): защита __init__(сам): супер(FindParameter, self).__init__() self.layers = Последовательный( Линейный(1, 10), РеЛУ(), Линейный(10, 100), РеЛУ(), Линейный(100, 10), РеЛУ(), Линейный(10, 1), ) защита вперед (я, ввод): вернуть self.layers(вход) а = 5,0 х = [] у = [] train_dataset_size = 10000 для меня в диапазоне (train_dataset_size): x.append(randint(0, 10000)) y.append(x * а) X = [from_numpy(np.array([c], dtype=np.float32)) для c в x] Y = [from_numpy(np.array([c], dtype=np.float32)) для c в y] A = from_numpy(np.array([a], dtype=np.float32)) эпохи = диапазон (100) модель = НайтиПараметр() loss_f = CrossEntropyLoss() оптимизатор = Адам(model.parameters(), lr=1e-3) для эпохи в эпохах: для x, y в zip(X, Y): оптимизатор.zero_grad() a_pred = модель (х) y_pred = a_pred * x потеря = loss_f(y_pred, y) потеря.назад() оптимизатор.шаг()
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Нахождение биномиального коэффициента для больших n и k по модулю m
    Anonymous » » в форуме C++
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Реагируйте родную высоту вида и высоту DIV внутри веб -вида
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Реагируйте родную высоту вида и высоту DIV внутри веб -вида
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Реагируйте родную высоту вида и высоту DIV внутри веб -вида
    Anonymous » » в форуме Javascript
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Реагируйте родную высоту вида и высоту DIV внутри веб -вида
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»