C'est une histoire très simple, mais c'est un mémorandum parce qu'elle semble fondre pendant longtemps un jour.
import torch
import torch.nn as nn
class Encoder(nn.Module):
def __init__(self, p_n_features_num, timesteps) -> None:
self.p_n_features_num = p_n_features_num
self.linear = nn.Linear(
p_n_features_num, p_n_features_num, bias=True)
self.leakyrelu = nn.LeakyReLU()
def forward(self, input_net):
input_net = input_net.view(input_net.size(0), self.p_n_features_num)
return self.leakyrelu(self.linear(input_net))
Si vous appelez \ _ \ _ init \ _ \ _ du codeur ici
cannot assign module before Module.init() call
```J'obtiens l'erreur.
## Solution, corriger le code
En effet, la super méthode n'a pas été appelée en premier car elle a hérité de nn.Module au moment de l'initialisation. Par conséquent, il peut être corrigé en le modifiant comme suit.
```python
import torch
import torch.nn as nn
class Encoder(nn.Module):
def __init__(self, p_n_features_num, timesteps) -> None:
super(Encoder, self).__init__()
self.p_n_features_num = p_n_features_num
self.linear = nn.Linear(
p_n_features_num, p_n_features_num, bias=True)
self.leakyrelu = nn.LeakyReLU()
def forward(self, input_net):
input_net = input_net.view(input_net.size(0), self.p_n_features_num)
return self.leakyrelu(self.linear(input_net))
Recommended Posts