caffe的python接口学习(5):生成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复制一份,修改相应的地方就可以了,更加方便。

时间: 2024-12-24 05:24:50

caffe的python接口学习(5):生成deploy文件的相关文章

caffe的python接口学习(7):绘制loss和accuracy曲线

使用python接口来运行caffe程序,主要的原因是python非常容易可视化.所以不推荐大家在命令行下面运行python程序.如果非要在命令行下面运行,还不如直接用 c++算了. 推荐使用jupyter notebook,spyder等工具来运行python代码,这样才和它的可视化完美结合起来. 因为我是用anaconda来安装一系列python第三方库的,所以我使用的是spyder,与matlab界面类似的一款编辑器,在运行过程中,可以查看各变量的值,便于理解,如下图: 只要安装了anac

caffe的python接口学习(6):用训练好的模型(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=

caffe的python接口学习(4)mnist实例手写数字识别

以下主要是摘抄denny博文的内容,更多内容大家去看原作者吧 一 数据准备 准备训练集和测试集图片的列表清单; 二 导入caffe库,设定文件路径 # -*- coding: utf-8 -*- import caffe from caffe import layers as L,params as P,proto,to_proto #设定文件的保存路径 root='/home/xxx/' #根目录 train_list=root+'mnist/train/train.txt' #训练图片列表

caffe的python接口学习(8):caffemodel中的参数及特征的抽取

如果用公式  y=f(wx+b) 来表示整个运算过程的话,那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项.f是激活函数,有sigmoid.relu等.x就是输入的数据. 数据训练完成后,保存的caffemodel里面,实际上就是各层的w和b值. 我们运行代码: deploy=root + 'mnist/deploy.prototxt' #deploy文件 caffe_model=root + 'mnist/lenet_iter_9380.ca

caffe的python接口学习(3)训练模型training

如果不进行可视化,只想得到一个最终的训练model, 那么代码非常简单,如下 : import caffe caffe.set_device(0) caffe.set_mode_gpu() solver = caffe.SGDSolver('/home/xxx/data/solver.prototxt') solver.solve() 原文地址:https://www.cnblogs.com/niulang/p/8984829.html

ubuntu配置caffe的python接口pycaffe

参考网站: http://blog.csdn.net/sanmao5/article/details/51923982 (主要参考) https://github.com/BVLC/caffe/issues/782 (问题解决) ubuntu配置caffe的python接口pycaffe 依赖 前提caffe已经正确编译.见Ubuntu配置caffe 库包 sudo apt-get install python-pip sudo atp-get install python-dev python

caffe使用 python接口

使用caffe训练好的模型进行分类: http://blog.csdn.net/thy_2014/article/details/51648730 提取caffe前馈的中间结果+逐层可视化: http://blog.csdn.net/thy_2014/article/details/51659300

Jenkins中集成python,支持参数生成Makefile文件

#!/usr/bin/env python import os print os.getenv("BUILD_NUMBER") print os.getenv("uuid")#534D4152-5443-534C-5F54-494D45415049 print os.getenv("ta_path")#/home/lukey/t_core/TTAs_0729/ with open (os.getenv("ta_path")+&

[python IO学习篇] 补充.py文件是中文, .ini文件内容是中文

1 python 代码文件的编码.py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character.需要在代码文件的第一行或第二行添加编码指示: 1 # coding=utf-8 ##以utf-8编码储存中文字符 2 print '中文' 像上面那样直接输入的字符串是按照代码文件的编码来处理的,如果 用unicode编码,有以下三种方式: 1 s1 = u'中文' #u表示用unicode编码方式储存