返回顶部
首页 > 资讯 > 后端开发 > Python >caffe的python接口deploy生成caffemodel分类新的图片
  • 869
分享到

caffe的python接口deploy生成caffemodel分类新的图片

2024-04-02 19:04:59 869人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录caffe的python接口生成deploy文件训练好的模型caffemodel分类新图片caffe的Python接口生成deploy文件 如果要把训练好的模型拿来测试新的图片,

caffe的Python接口生成deploy文件

如果要把训练好的模型拿来测试新的图片,那必须得要一个deploy.prototxt文件,这个文件实际上和test.prototxt文件差不多,只是头尾不相同而也。deploy文件没有第一层数据输入层,也没有最后的Accuracy层,但最后多了一个Softmax概率层。

这里我们采用代码的方式来自动生成该文件,以mnist为例。

deploy.py

# -*- coding: utf-8 -*-
from caffe import layers as L,params as P,to_proto
root='/home/xxx/'
deploy=root+'mnist/deploy.prototxt'    #文件保存路径
def create_deploy():
    #少了第一层,data层
    conv1=L.Convolution(bottom='data', kernel_size=5, stride=1,num_output=20, pad=0,weight_filler=dict(type='xavier'))
    pool1=L.Pooling(conv1, pool=P.Pooling.MAX, kernel_size=2, stride=2)
    conv2=L.Convolution(pool1, kernel_size=5, stride=1,num_output=50, pad=0,weight_filler=dict(type='xavier'))
    pool2=L.Pooling(conv2, pool=P.Pooling.MAX, kernel_size=2, stride=2)
    fc3=L.InnerProduct(pool2, num_output=500,weight_filler=dict(type='xavier'))
    relu3=L.ReLU(fc3, in_place=True)
    fc4 = L.InnerProduct(relu3, num_output=10,weight_filler=dict(type='xavier'))
    #最后没有accuracy层,但有一个Softmax层
    prob=L.Softmax(fc4)
    return to_proto(prob)
def write_deploy(): 
    with open(deploy, 'w') as f:
        f.write('name:"Lenet"\n')
        f.write('input:"data"\n')
        f.write('input_dim:1\n')
        f.write('input_dim:3\n')
        f.write('input_dim:28\n')
        f.write('input_dim:28\n')
        f.write(str(create_deploy()))
if __name__ == '__main__':
    write_deploy()

运行该文件后,会在mnist目录下,生成一个deploy.prototxt文件。

这个文件不推荐用代码来生成,反而麻烦。大家熟悉以后可以将test.prototxt复制一份,修改相应的地方就可以了,更加方便。

训练好的模型caffemodel分类新图片

经过前面的学习,我们已经训练好了一个caffemodel模型,并生成了一个deploy.prototxt文件,现在我们就利用这两个文件来对一个新的图片进行分类预测。

我们从mnist数据集的test集中随便找一张图片,用来进行实验。

#coding=utf-8
import caffe
import numpy as np
root='/home/xxx/'   #根目录
deploy=root + 'mnist/deploy.prototxt'    #deploy文件
caffe_model=root + 'mnist/lenet_iter_9380.caffemodel'   #训练好的 caffemodel
img=root+'mnist/test/5/00008.png'    #随机找的一张待测图片
labels_filename = root + 'mnist/test/labels.txt'  #类别名称文件,将数字标签转换回类别名称
net = caffe.net(deploy,caffe_model,caffe.TEST)   #加载model和network
#图片预处理设置
transfORMer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})  #设定图片的shape格式(1,3,28,28)
transformer.set_transpose('data', (2,0,1))    #改变维度的顺序,由原始图片(28,28,3)变为(3,28,28)
#transformer.set_mean('data', np.load(mean_file).mean(1).mean(1))    #减去均值,前面训练模型时没有减均值,这儿就不用
transformer.set_raw_scale('data', 255)    # 缩放到【0,255】之间
transformer.set_channel_swap('data', (2,1,0))   #交换通道,将图片由RGB变为BGR
im=caffe.io.load_image(img)                   #加载图片
net.blobs['data'].data[...] = transformer.preprocess('data',im)      #执行上面设置的图片预处理操作,并将图片载入到blob中
#执行测试
out = net.forward()
labels = np.loadtxt(labels_filename, str, delimiter='\t')   #读取类别名称文件
prob= net.blobs['Softmax1'].data[0].flatten() #取出最后一层(Softmax)属于某个类别的概率值,并打印
print prob
order=prob.argsort()[-1]  #将概率值排序,取出最大值所在的序号 
print 'the class is:',labels[order]   #将该序号转换成对应的类别名称,并打印

最后输出 the class is : 5

分类正确。

如果是预测多张图片,可把上面这个文件写成一个函数,然后进行循环预测就可以了。

以上就是caffe的python接口deploy生成caffemodel分类新的图片的详细内容,更多关于caffe python生成deploy图片分类的资料请关注编程网其它相关文章!

--结束END--

本文标题: caffe的python接口deploy生成caffemodel分类新的图片

本文链接: https://lsjlt.com/news/118962.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • caffe的python接口deploy生成caffemodel分类新的图片
    目录caffe的python接口生成deploy文件训练好的模型caffemodel分类新图片caffe的python接口生成deploy文件 如果要把训练好的模型拿来测试新的图片,...
    99+
    2024-04-02
  • caffe的python接口caffemodel参数怎么使用
    本篇内容主要讲解“caffe的python接口caffemodel参数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“caffe的python接口caffemodel参数怎么使用”吧!前言...
    99+
    2023-07-02
  • caffe的python接口caffemodel参数及特征抽取示例
    正文 如果用公式  y=f(wx+b) 来表示整个运算过程的话,那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项。f是激...
    99+
    2024-04-02
  • caffe的python接口生成配置文件学习
    目录引言如何写配置文件图片转换成LMDB文件引言 caffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现。caffe提供matlab接口和python接口,这...
    99+
    2024-04-02
  • caffe的python接口生成solver文件详解学习
    目录solver.prototxt的文件参数设置生成solver文件简便的方法训练模型(training)solver.prototxt的文件参数设置 caffe在训练的时候,需要一...
    99+
    2024-04-02
  • python生成带有表格的图片
    因为工作中需要,需要生成一个带表格的图片 例如: 直接在html中写一个table标签,然后单独把表格部分保存成图片 或者是直接将excel中的内容保存成一个图片 刚开始的思路,是直接生成一个带有table标签的html文件,然后...
    99+
    2023-01-31
    表格 图片 python
  • 利用ECharts和Python接口生成漏斗图的步骤
    利用ECharts和Python接口生成漏斗图的步骤,需要具体代码示例漏斗图是一种常用的数据可视化工具,可以用于展示数据在不同阶段之间的变化情况。利用ECharts和Python接口,我们可以轻松地生成漂亮的漏斗图。下面,将按照以下步骤介绍...
    99+
    2023-12-17
    Python echarts 漏斗图
  • 使用ECharts和Python接口生成树状图的方法
    使用ECharts和Python接口生成树状图的方法概要:近年来,数据可视化在各个领域中发挥着越来越重要的作用。ECharts是一款强大的数据可视化库,而Python是一种广泛使用的编程语言。将两者结合起来,我们可以实现简单、灵活且美观的树...
    99+
    2023-12-18
    Python echarts 树状图方法
  • spring boot 动态生成接口实现类的场景分析
    目录一:定义注解二:建立动态代理类三:注入spring容器四:编写拦截器五:新建测试类在某些业务场景中,我们只需要业务代码中定义相应的接口或者相应的注解,并不需要实现对应的逻辑。 比...
    99+
    2024-04-02
  • python生成图片验证码的方法
    背景 在注册或者登陆场景下,经常会遇到需要输入图片验证码的情况,最经典的就是12306买火车票。图片验证码的破解还是有一定难度的,而且如果配合上时间和次数的验证,可以很大程度上防止模...
    99+
    2024-04-02
  • 使用ECharts和Python接口生成极坐标图的方法
    使用ECharts和Python接口生成极坐标图的方法,需要具体代码示例ECharts是一款非常强大、易于使用的开源数据可视化工具,它具有快速、美观、可定制的特点,可以快速地绘制各种图表。ECharts支持的图表类型非常多,包括柱状图、折线...
    99+
    2023-12-17
    Python echarts 极坐标图
  • 利用ECharts和Python接口生成水平柱状图的方法
    利用ECharts和Python接口生成水平柱状图的方法ECharts是一个基于JavaScript开发的可视化图表库,可以方便地创建各种数据可视化图表。结合Python接口,可以更方便地进行数据处理,并将其可视化。本文将介绍利用EChar...
    99+
    2023-12-18
    Python echarts 水平柱状图
  • 新浪短链接 推荐几个最新的新浪t.cn短链接生成的API接口
    新浪很久之前提供了长链接转为短链接的公开API,可以把长链接转为t.cn/xxx这种格式的新浪短链接。但是在去年9月的时候,新浪由于政策上的调整,将之前的接口关闭了!今天就给大家带来几个还可以使用新浪短网址工具:新浪短网址API接口(亲测可...
    99+
    2023-06-04
  • Python生成九宫格图片的示例代码
    一、前言 大家在朋友圈应该看到过用一张图片以九宫格的方式显示,效果大致如下: 要实现上面的效果非常简单,我们只需要截取图片的九个区域即可。今天我们就要带大家使用Python来实现...
    99+
    2024-04-02
  • Python如何生成高清的二维码图片?
    随着移动互联网的发展,二维码已经逐渐成为人们生活中必不可少的工具。无论是支付、商家推广还是个人名片,都可以通过二维码来方便地实现。那么,如何使用Python生成高清的二维码图片呢? 首先,我们需要安装一个名为qrcode的Python库,...
    99+
    2023-09-11
    二维码 大数据 数组
  • HTTP短网址生成接口的示例分析
    本篇文章给大家分享的是有关HTTP短网址生成接口的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。简要描述短网址,顾名思义就是一种较短域名加动态参数组成的短地址,类似于h...
    99+
    2023-06-04
  • 二维码图片生成器QRCode.js的示例分析
    这篇文章给大家分享的是有关二维码图片生成器QRCode.js的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。QRCode.js是一个实现生成二维码(QRCode)的js插...
    99+
    2024-04-02
  • SpringBoot 利用MultipartFile上传本地图片生成图片链接的实现方法
    方法一 实现类: public String fileUpload(MultipartFile file) { if(file == null){ retu...
    99+
    2024-04-02
  • 怎么用GAN训练自己数据生成新的图片
    本文小编为大家详细介绍“怎么用GAN训练自己数据生成新的图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用GAN训练自己数据生成新的图片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、读取数据问题#&n...
    99+
    2023-07-05
  • 利用Python批量生成任意尺寸的图片
    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片。 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- im...
    99+
    2022-06-04
    批量 尺寸 图片
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作