Как я могу использовать функцию odeint из torchdiffeq для классификации двух концентрических колец?Python

Программы на Python
Anonymous
Как я могу использовать функцию odeint из torchdiffeq для классификации двух концентрических колец?

Сообщение Anonymous »

У меня есть набор данных, в котором два класса распределены по двум концентрическим кругам с нулевым перекрытием. Как я могу использовать нейронную ОДУ для решения этой проблемы?
Я получаю сообщение об ошибке RuntimeError: форма '[1024, 2]' недопустима для ввода размера 1024 при запуске сеть ниже.

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

class ODEFunc(nn.Module):

def __init__(self):
super(ODEFunc, self).__init__()

hdim = 32
# define your self.net as an MLP
self.net = nn.Sequential(
nn.Linear(2, hdim),
nn.Tanh(),
nn.Linear(hdim, hdim),
nn.Tanh(),
nn.Linear(hdim, 1)
)

def forward(self, t, y):
return self.net(y)

class Model(nn.Module):

def __init__(self, odefunc, device="cpu"):
super(Model, self).__init__()
self.odefunc = odefunc
# this is to make a prediction
self.linear_layer = nn.Linear(2, 1)

def forward(self, y):
t_span = torch.linspace(0., 1., 2)
# call odeint with your odefunc, initial value, and t_span
pred_y = odeint(self.odefunc, y, t_span)
# transform your output for the binary classification
yhat = self.linear_layer(pred_y)
return yhat
PS: Размер обучающих данных — [1024, 2].

PPS: 100% точность не важна.

Подробнее здесь: https://stackoverflow.com/questions/759 ... centric-an

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