Carregando um modelo pré-treinado
A primeira etapa para trabalhar com um modelo pré-treinado é obter o próprio modelo. Existem vários modelos pré-treinados populares disponíveis, como VGG, ResNet e Inception, que são frequentemente usados para tarefas como classificação de imagens e detecção de objetos. Neste exemplo, usaremos o modelo VGG16, que foi pré-treinado no conjunto de dados ImageNet.
Para carregar o modelo VGG16 pré-treinado, precisamos usar a biblioteca TensorFlow e seu módulo Keras. Se você não tiver o TensorFlow instalado, poderá fazê-lo com o seguinte comando:
""
pip instalar tensorflow
""
Uma vez instalado o TensorFlow, podemos prosseguir com o carregamento do modelo VGG16. Aqui está a explicação passo a passo do código:
from tensorflow.keras.applications import VGG16 # Load the pretrained VGG16 model with the 'imagenet' weights model = VGG16(weights="imagenet")
No código acima, primeiro importamos a classe VGG16 do módulo `tensorflow.keras.applications`. Em seguida, criamos uma instância do modelo VGG16 passando o argumento `weights=”imagenet”`, que instrui o modelo a carregar pesos que foram pré-treinados no conjunto de dados ImageNet.
Usando o modelo pré-treinado
Agora que carregamos o modelo VGG16 pré-treinado, podemos usá-lo para várias tarefas, como classificação de imagens. Para realizar a classificação da imagem, precisamos pré-processar a imagem de entrada para torná-la compatível com o modelo VGG16. Isso envolve redimensionar a imagem, normalizar os valores de pixel e expandir suas dimensões.
import numpy as np from tensorflow.keras.preprocessing import image from tensorflow.keras.applications.vgg16 import preprocess_input # Load an example image and preprocess it img_path = "path/to/your/image.jpg" img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x)
No código acima, usamos o módulo `image` de `tensorflow.keras.preprocessing` para carregar e pré-processar a imagem de entrada. A imagem é redimensionada para `(224, 224)` de acordo com os requisitos do modelo VGG16. Em seguida, convertemos a imagem em uma matriz NumPy e expandimos suas dimensões para corresponder à forma de entrada esperada. Finalmente, usamos a função `preprocess_input` do módulo `tensorflow.keras.applications.vgg16` para normalizar os valores de pixel.
Com a imagem de entrada pré-processada e pronta, agora podemos usar o modelo VGG16 pré-treinado para fazer uma previsão:
from tensorflow.keras.applications.vgg16 import decode_predictions # Make a prediction using the pretrained model predictions = model.predict(x) # Decode the prediction and print the top 3 results predicted_classes = decode_predictions(predictions, top=3) print(predicted_classes)
No exemplo acima, usamos o método `model.predict` para gerar uma previsão para a imagem de entrada. As previsões resultantes são então decodificadas usando a função `decode_predictions` do módulo `tensorflow.keras.applications.vgg16` para revelar as 3 principais classes previstas do conjunto de dados ImageNet.
Concluindo, carregar e usar modelos pré-treinados em Python é facilitado com a biblioteca TensorFlow. Essa abordagem pode reduzir significativamente o tempo e os recursos necessários para obter resultados precisos, tornando-a incrivelmente valiosa para praticantes de aprendizado de máquina novatos e experientes.