• 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"
    ')
            f.write('input:"data"
    ')
            f.write('input_dim:1
    ')
            f.write('input_dim:3
    ')
            f.write('input_dim:28
    ')
            f.write('input_dim:28
    ')
            f.write(str(create_deploy()))
    if __name__ == '__main__':
        write_deploy()

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

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

  • 相关阅读:
    在 ASP.NET 2.0 中上载文件
    ASP.NET(C#)FileUpload实现上传限定类型和大小的文件到服务器<from Copying>
    aspnetupload 上传组件在VS2008中使用详细说明
    基于asp.net 的文件上传和下载~~~转
    设置竖直的分割符【使用div】 (根据屏幕的大小自适应)
    分隔线
    UGUI事件系统
    U3D音频系统
    Unity启动事件-监听:InitializeOnLoad
    VS生成桌面应用程序
  • 原文地址:https://www.cnblogs.com/denny402/p/5685818.html
Copyright © 2020-2023  润新知