- This topic has 3 replies, 3 voices, and was last updated 2 years, 1 month ago by .
Viewing 4 posts - 1 through 4 (of 4 total)
Viewing 4 posts - 1 through 4 (of 4 total)
- You must be logged in to reply to this topic.
Home › Forums › Fórum Deep Learning de A à Z com PyTorch e Python › Atualização na classe da rede neural Projeto – 2: BreastCancer
Olá
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 X
Olá,
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.
🙂 Obrigado
Qualquer outra dúvida é só avisar!