EmpezarEmpieza gratis

Crear un modelo GRU para texto

En PyBooks, el equipo ha quedado impresionado con el rendimiento de los dos modelos que entrenaste anteriormente. Sin embargo, en su búsqueda de la excelencia, quieren asegurarse de elegir el mejor modelo posible para la tarea. Por ello, te han pedido que amplíes el proyecto experimentando con las capacidades de los modelos GRU, conocidos por su eficiencia y eficacia en tareas de clasificación de texto. Tu nueva tarea es aplicar el modelo GRU para clasificar artículos del conjunto de datos Newsgroup en las siguientes categorías:

rec.autos, sci.med y comp.graphics.

Se han cargado los siguientes paquetes para ti: torch, nn, optim.

Este ejercicio forma parte del curso

Deep Learning para texto con PyTorch

Ver curso

Instrucciones del ejercicio

  • Completa la clase GRU con los parámetros necesarios.
  • Inicializa el modelo con los mismos parámetros.
  • Entrena el modelo: pasa los parámetros a la función de criterio y retropropaga la pérdida.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Complete the GRU model
class GRUModel(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, num_classes):
        super(GRUModel, self).__init__()
        self.hidden_size = hidden_size
        self.num_layers = num_layers
        self.gru = ____
        self.fc = nn.Linear(hidden_size, num_classes)       
    def forward(self, x):
        h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size) 
        out, _ = self.gru(x, h0)
        out = out[:, -1, :] 
        out = self.fc(out)
        return out

# Initialize the model
gru_model = ____
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(gru_model.parameters(), lr=0.01)

# Train the model and backpropagate the loss after initialization
for epoch in range(15): 
    optimizer.zero_grad()
    outputs = ____
    loss = criterion(____, y_train_seq)
    ____
    optimizer.step()
    print(f'Epoch: {epoch+1}, Loss: {loss.item()}')
Editar y ejecutar código