Exercício – Prever o tipo de rocha espacial em uma foto aleatória

Concluído

Vamos usar nosso modelo para prever os tipos de rocha.

Para prever o tipo de rocha em uma nova imagem, precisamos concluir estas etapas:

  • Etapa 1: converter a nova imagem em números. Use a função test_transforms que você criou para transformar as imagens no modelo.
  • Etapa 2: transformar a imagem. Corte e redimensione a imagem para 224 × 224 pixels com as funções unsqueeze e Variable.
  • Etapa 3: extrair os recursos e as características da imagem. Passe a imagem para o modelo para fazer as extrações.
  • Etapa 4: prever o tipo de rocha mostrado na imagem. Use as associações que aprendemos na etapa 2 encontrando a previsão de probabilidade mais alta dos resultados do modelo.

Usar o modelo para fazer previsões

Siga estas etapas para fazer previsões com a rede neural em seu modelo de IA.

  1. Primeiro, carregamos a rede neural. Adicione o seguinte código a uma nova célula no seu arquivo do Jupyter Notebook e execute a célula:

    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    model=torch.load('aerialmodel.pth')
    
  2. Em seguida, criamos uma função para prever o tipo de rocha em uma nova imagem comparando-a com o padrão de matriz do nosso modelo. Adicione o seguinte código a uma nova célula no seu arquivo do Jupyter Notebook e execute a célula:

    def predict_image(image):
        image_tensor = test_transforms(image).float()
        image_tensor = image_tensor.unsqueeze_(0)
        input = Variable(image_tensor)
        input = input.to(device)
        output = model(input)
        index = output.data.cpu().numpy().argmax()
        return index
    

Você definiu a função de previsão de imagem. Agora, você pode continuar com o exercício final e chamar essa função para prever o tipo de rocha em uma imagem.