本小节将会介绍如何利用已经预训练好的卷积神经网络模型对一张图像进行预测,并且通过可视化的方法,查看模型是如何得到其预测结果的。
我们直接看一个实例,利用已经预训练好的VGG16卷积神经网络对一张图像获取一些特定层的输出,并将这些输出可视化,并观察VGG16对图像的特征提取情况。
import torch
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import requests
import cv2
from torch import nn
import torch.nn.functional as F
from torchvision import models
from torchvision import transforms
from PIL import Image
vgg16=models.vgg16(pretrained=True)
im=Image.open("C:\\Users\\zex\\Downloads\\Compressed\\validation\\validation\\n7\\n704.jpg")
imarray=np.asarray(im)/255.0
plt.figure()
plt.imshow(imarray)
plt.show()
通过PIL库读取图像,并转化为Numpy数组后,使用matplotlib库进行可视化,得到的图像下图所示:
图像输入VGG16模型之前,需要对该图像进行预处理,将其处理为网络可接受的输入。</