class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.encoder = nn.Linear(300, 100)
self.dense1 = nn.Sequential(nn.Linear(100, 10),nn.ReLU())
self.dense2 = nn.Sequential(nn.Linear(10, 5),nn.ReLU())
self.dense3 = nn.Sequential(nn.Linear(5, 1))
def forward(self, x):
x = self.encoder(x)
x = self.dense1(x)
x = self.dense2(x)
x = self.dense3(x)
return x
我正在研究回归问题,我需要使用density2层的输出来计算损失。
致密2层的输出为5维(5x1)。
我正在使用PyTorch。
数据集:假设我正在使用300个功能,并且我需要预测一些分数(一个浮动值)。 输入:300个功能 输出:一些浮动值
答案 0 :(得分:2)
通常,您的nn.Module
可以返回任意多个元素。此外,您不必在任何地方使用它们-没有机制可以对其进行检查。 Pytorch的哲学是在运行中计算计算图。
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.encoder = nn.Linear(300, 100)
self.dense1 = nn.Sequential(nn.Linear(100, 10),nn.ReLU())
self.dense2 = nn.Sequential(nn.Linear(10, 5),nn.ReLU())
self.dense3 = nn.Sequential(nn.Linear(5, 1))
def forward(self, x):
enc_output = self.encoder(x)
dense1_output = self.dense1(enc_output)
dense2_output = self.dense2(dense1_output)
dense3_output = self.dense3(dense2_output)
return dense3_output, dense2_output