Pregunta

Me preguntaba si estaba bien usar antorcha. Cat dentro de mi función de avance. Lo estoy haciendo porque quiero que las dos primeras columnas de mi entrada omitan las capas ocultas del medio y vayan directamente a la capa final.

Aquí está mi código: puedes ver que uso Torch.cat en el último momento para hacer XCAT.

¿El gradiente se propaga? ¿O la antorcha.cat cubre lo que pasó con mis variables ocultas?

class LinearRegressionForce(nn.Module):

    def __init__(self, focus_input_size, rest_input_size, hidden_size_1, hidden_size_2, output_size):
        super(LinearRegressionForce, self).__init__()

        self.in1 = nn.Linear(rest_input_size, hidden_size_1) 
        self.middle1 = nn.Linear(hidden_size_1,hidden_size_2)
        self.out4 = nn.Linear(focus_input_size + hidden_size_2,output_size)

    def forward(self, inputs):
        focus_inputs = inputs[:,0:focus_input_size]
        rest_inputs = inputs[:,focus_input_size:(rest_input_size+focus_input_size)]
        x = self.in1(rest_inputs).clamp(min=0)
        x = self.middle1(x).clamp(min=0)
        xcat = torch.cat((focus_inputs,x),1)
        out = self.out4(xcat).clamp(min=0)
        return out

Lo llamo así:

rest_inputs = Variable(torch.from_numpy(rest_x_train))
focus_x_train_ones = np.concatenate((focus_x_train, np.ones((n,1))), axis=1)
focus_inputs =  Variable(torch.from_numpy(focus_x_train_ones)).float()
inputs = torch.cat((focus_inputs,rest_inputs),1)

predicted = model(inputs).data.numpy()

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
scroll top