Exercício – Prever o tipo de rocha espacial em uma foto aleatória
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
eVariable
. - 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.
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')
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.