深度学习VGG模型提取特征

用VGG-16预训练好的模型提取特征,通过相关学者预训练好的模型使用的都是公开的标准数据集,所以我们直接用预训练的模型提取我们自己图像的特征,可以用于对图像进行描述。

1、首先就要下载模型结构
预训练好的模型是VGG16.npy,这个文件需要单独下载,上面那个连接上有下载连接,不过一般打不开,我把网盘地址分享 出来,希望可以帮助需要的人。
文件test_vgg16.py可以用于提取特征。其中vgg16.npy是需要单独下载的文件。
2、使用预训练的模型提取特征
github地址:https://github.com/leiup/tensorflow-vgg/blob/master/test_vgg16.py
打开test_vgg16.py,做如下修改:

import numpy as np
import tensorflow as tf
import vgg16
import utils

img1 = utils.load_image("./test_data/tiger.jpeg")
img2 = utils.load_image("./test_data/puzzle.jpeg")

batch1 = img1.reshape((1, 224, 224, 3))
batch2 = img2.reshape((1, 224, 224, 3))

batch = np.concatenate((batch1, batch2), 0)
with tf.device(’/cpu:0’):

with tf.Session() as sess:
    images = tf.placeholder("float", [2, 224, 224, 3])
    feed_dict = {images: batch}
    
    vgg = vgg16.Vgg16()
    with tf.name_scope("content_vgg"):
        vgg.build(images)

    prob = sess.run(vgg.fc7, feed_dict=feed_dict)   #需要提取哪一层特征,就在这里做修改,比如fc6,只需要把vgg.fc7修改为vgg.fc6
    print(prob)

提取哪一层的特征,需要把名字修改一下即可,而名字可以查vgg16.py,里面定义了每一层的名字。
所有操作已经完毕

你可能感兴趣的:(特征提取,深度学习——人工智能,深度学习,tensorflow)