zoukankan      html  css  js  c++  java
  • caffe学习笔记(十二)用训练好的模型进行分类

    1、caffemodel文件

    文件名称为:bvlc_reference_caffenet.caffemodel,文件大小为230M左右,为了代码的统一,将这个caffemodel文件下载到caffe根目录下的 models/bvlc_reference_caffenet/ 文件夹下面。可以运行脚本文件进行下载:

    ./scripts/download_model_binary.py models/bvlc_reference_caffenet

    2、均值文件。

    有了caffemodel文件,就需要对应的均值文件,在测试阶段,需要把测试数据减去均值。这个文件我们用脚本来下载,在caffe根目录下执行:

    sh ./data/ilsvrc12/get_ilsvrc_aux.sh

    执行并下载后,均值文件放在 data/ilsvrc12/ 文件夹里。

    3、synset_words.txt文件

    在调用脚本文件下载均值的时候,这个文件也一并下载好了。里面放的是1000个类的名称。

    python方法

    caffe开发团队实际上也编写了一个python版本的分类文件,路径为 python/classify.py

    运行这个文件必需两个参数,一个输入图片文件,一个输出结果文件。而且运行必须在python目录下。假设当前目录是caffe根目录,则运行:

    cd python
    python classify.py ../examples/images/cat.jpg result.npy

    分类的结果保存为当前目录下的result.npy文件里面,是看不见的。而且这个文件有错误,运行的时候,会提示

    Mean shape incompatible with input shape

    的错误。因此,要使用这个文件,我们还得进行修改:

    1、修改均值计算:

    定位到

    mean = np.load(args.mean_file)

     这一行,在下面加上一行:

    mean=mean.mean(1).mean(1)

     则可以解决报错的问题。

    2、修改文件,使得结果显示在命令行下:

    定位到

    # Classify.
        start = time.time()
        predictions = classifier.predict(inputs, not args.center_only)
        print("Done in %.2f s." % (time.time() - start))

    这个地方,在后面加上几行,如下所示:

      # Classify.
        start = time.time()
        predictions = classifier.predict(inputs, not args.center_only)
        print("Done in %.2f s." % (time.time() - start))
        imagenet_labels_filename = '../data/ilsvrc12/synset_words.txt'
        labels = np.loadtxt(imagenet_labels_filename, str, delimiter='	')
        top_k = predictions.flatten().argsort()[-1:-6:-1]
        for i in np.arange(top_k.size):
            print top_k[i], labels[top_k[i]]

     就样就可以了。运行不会报错,而且结果会显示在命令行下面。

  • 相关阅读:
    Windows永久修改pip安装源
    MySQL 超键 候选键 主键 外键是什么
    scrapy中间件
    crawlspider
    scrapy
    MongoDB 命令
    如何反扒
    表前缀sw_时
    自增序号,而且默认变量就是$i,也就是说在你的volist标签之内,可以直接使用$i
    html,if标签使用
  • 原文地址:https://www.cnblogs.com/zhoulixue/p/6639836.html
Copyright © 2011-2022 走看看