Home › Fóruns › Fórum Deep Learning de A à Z com PyTorch e Python › Atualização na classe da rede neural Projeto – 2: BreastCancer
- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 1 ano, 4 meses atrás por
tvaditya.
- AutorPosts
- 13 de janeiro de 2022 às 11:53 #32904
tvaditya
ParticipanteOlá
Gostaria de entender esta atualizaçao na classe da estrutura da rede neural, isto significa que não precisamos mais indicar que é uma sigmoide? E na segunda atualização ele já vai entender que é uma camada de saída sem especificarmos? Segue o codigo:
class classificador_torch(nn.Module):
def __init__(self):
super().__init__()# 30 -> 16 -> 16 -> 1
self.dense0 = nn.Linear(30, 16)
torch.nn.init.uniform_(self.dense0.weight)
self.activation0 = nn.ReLU()
self.dropout0 = nn.Dropout(0.2)
self.dense1 = nn.Linear(16, 16)
torch.nn.init.uniform_(self.dense1.weight)
self.activation1 = nn.ReLU()
self.dropout1 = nn.Dropout(0.2)
self.dense2 = nn.Linear(16, 1)
torch.nn.init.uniform_(self.dense2.weight)
# self.output = nn.Sigmoid() ** ATUALIZAÇÃO **def forward(self, X):
X = self.dense0(X)
X = self.activation0(X)
X = self.dropout0(X)
X = self.dense1(X)
X = self.activation1(X)
X = self.dropout1(X)
X = self.dense2(X)
# X = self.output(X) ** ATUALIZAÇÃO **
return X13 de janeiro de 2022 às 15:03 #32905Denny Ceccon
ModeradorOlá,
Esta atualização foi feita para que o modelo possa ser processado pela biblioteca Skorch, que não aceita que a saída da rede seja o resultado de uma ativação, mas sim exige que seja o resultado bruto. Neste caso, a função de custo fica responsável por fazer a ativação correspondente.
13 de janeiro de 2022 às 17:55 #32909tvaditya
Participante🙂 Obrigado
- AutorPosts
- Você deve fazer login para responder a este tópico.