首页 > 其他 > 详细

深度学习tensorflow实战笔记 用预训练好的VGG-16模型提取图像特征

时间:2019-11-10 17:36:55      阅读:413      评论:0      收藏:0      [点我收藏+]

 1、首先就要下载模型结构

      首先要做的就是下载训练好的模型结构和预训练好的模型,结构地址是:点击打开链接

     模型结构如下:

技术分享图片

  文件test_vgg16.py可以用于提取特征。其中vgg16.npy是需要单独下载的文件。

 

2、使用预训练的模型提取特征

 

    打开test_vgg16.py,做如下修改:

 

 1 import numpy as np
 2 import tensorflow as tf
 3  
 4 import vgg16
 5 import utils
 6  
 7 img1 = utils.load_image("./test_data/tiger.jpeg")
 8 img2 = utils.load_image("./test_data/puzzle.jpeg")
 9  
10 batch1 = img1.reshape((1, 224, 224, 3))
11 batch2 = img2.reshape((1, 224, 224, 3))
12  
13 batch = np.concatenate((batch1, batch2), 0)
14  
15 # with tf.Session(config=tf.ConfigProto(gpu_options=(tf.GPUOptions(per_process_gpu_memory_fraction=0.7)))) as sess:
16 with tf.device(/cpu:0):
17     with tf.Session() as sess:
18         images = tf.placeholder("float", [2, 224, 224, 3])
19         feed_dict = {images: batch}
20  
21         vgg = vgg16.Vgg16()
22         with tf.name_scope("content_vgg"):
23             vgg.build(images)
24  
25         prob = sess.run(vgg.fc7, feed_dict=feed_dict)   #需要提取哪一层特征,就在这里做修改,比如fc6,只需要把vgg.fc7修改为vgg.fc6
26         print(prob)
27        # utils.print_prob(prob[0], ‘./synset.txt‘)
28        # utils.print_prob(prob[1], ‘./synset.txt‘)

 

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

 自此,所有操作已经完毕,相对还是挺简单的。

深度学习tensorflow实战笔记 用预训练好的VGG-16模型提取图像特征

原文:https://www.cnblogs.com/pypypy/p/11830464.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!