zoukankan      html  css  js  c++  java
  • Tensorflow实战笔记 用预训练好的VGG-16模型提取图像特征

     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,里面定义了每一层的名字。

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

     如果还有问题未能得到解决,搜索887934385交流群,进入后下载资料工具安装包等。最后,感谢观看!
  • 相关阅读:
    PHP开发者的MySQL错误
    shell编程技术和实例《linux0.01内核分析与操作系统设计》
    函数问题1 init_EMUX
    sizeof问题
    C语言读书心得
    《深入浅出MFC》读书感受
    计算机专业学习多年的苦恼
    一个完整的字符设备驱动程序导读
    学习书籍选择
    鼠标滑动、文本添加(倒计时)
  • 原文地址:https://www.cnblogs.com/pypypy/p/11830464.html
Copyright © 2011-2022 走看看