[PYTHON] Quand impossible d'attribuer le module avant que l'appel Module.init () ne soit émis dans pytorch

C'est une histoire très simple, mais c'est un mémorandum parce qu'elle semble fondre pendant longtemps un jour.

Code correspondant et contenu d'erreur

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

Quand impossible d'attribuer le module avant que l'appel Module.init () ne soit émis dans pytorch
Lorsque base.html ne peut pas être appelé dans Django
Quand j'obtiens une erreur de pilote chrome dans Selenium
[Python] Choses à vérifier lorsqu'une erreur de décodage Unicode apparaît dans Django
J'obtiens une exception java.util.regex.PatternSyntaxException lors du fractionnement d'une chaîne dans PySpark
BigQuery - Si vous obtenez une erreur Reason: responseTooLarge en Python
Lorsque vous voulez plt.save dans l'instruction for
Lorsqu'une erreur se produit dans le scraping python (requêtes)
[Petite histoire] Une mesure minutieuse lorsque vous devez exécuter une fonction avant l'importation en Python
Que faire si vous obtenez une erreur Impossible de récupérer le lien métallique pour le référentiel avec yum
Que faire si vous obtenez une erreur de remplacement obligatoire `get_config` lorsque vous essayez de model.save avec Keras
Si vous êtes bloqué dans Impossible de charger mkl_intel_thread.dll en Python sous Windows
Que faire si vous obtenez moins zéro en Python
Si vous souhaitez affecter une exportation csv à une variable en python
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python