GithubHelp home page GithubHelp logo

lcskrishna / caffe-net-upgrade Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 1.0 11 KB

Upgrade deprecated caffemodel to latest caffemodel (V1LayerParameters to LayerParameters) without installing caffe

License: MIT License

CMake 5.19% C++ 94.81%
caffe caffemodel deep-learning deep-neural-networks inference

caffe-net-upgrade's Introduction

caffe-net-upgrade

caffe-net-upgrade is a tool which takes a caffemodel or a prototxt file as an input that is defined with V1LayerParameters. (Caffe deprecated definition) . This implementation upgrades to the layer parameters.

Note: This tool doesn't require installation of caffe to upgrade your model.

Pre-requisites

  1. Ubuntu 16.04
  2. CMake 2.8 or newer download
  3. Install the Protobuf library.

Build Instructions

  1. Install the respective pre-requisites if not present. Make sure to install libprotobuf-dev and protobuf-compiler
  2. Navigate to the caffe-net-upgrade folder.
  3. mkdir build
  4. cd build
  5. cmake ../
  6. make

This automatically builds a executable in the build folder.

Usage:

    % upgrade_layer_parameters <net.caffemodel | net.prototxt> [output_file_prefix]

Example 1 : Upgrade VGG caffemodel

Download the VGG-Net 19 Layer caffemodel from the following site which is trained with V1LayerParameters here

Execute the following command :

    % upgrade_layer_parameters VGG.caffemodel output

This upgrades the caffemodel and writes into a new caffemodel named output.caffemodel.

Example 2 : Upgrade VGG prototxt

Download the VGG-Net 19 Layers prototxt defenition from the following site defined with V1LayerParameters here

Execute the following command:

    % upgrade_layer_parameters vgg.prototxt output

This upgrades the prototxt defenition and writes into a new file named output.prototxt

caffe-net-upgrade's People

Contributors

lcskrishna avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

hisoka418

caffe-net-upgrade's Issues

input_shape is not upgraded to an input Layer

Input Prototxt:

name: "TestConv"
input: "data"
input_shape {
  dim: 1
  dim: 4
  dim: 224
  dim: 224
}
layer {
  name: "conv1/7x7_s2"
  type: "Convolution"
  bottom: "data"
  top: "conv1/7x7_s2"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 3
    kernel_size: 7
    stride: 2
    weight_filler {
      type: "xavier"
      std: 0.1
    }
  }
}

Expected (From the official Caffe upgrade tool):

name: "TestConv"
layer {
  name: "input"
  type: "Input"
  top: "data"
  input_param {
    shape {
      dim: 1
      dim: 4
      dim: 224
      dim: 224
    }
  }
}
layer {
  name: "conv1/7x7_s2"
  type: "Convolution"
  bottom: "data"
  top: "conv1/7x7_s2"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 3
    kernel_size: 7
    stride: 2
    weight_filler {
      type: "xavier"
      std: 0.1
    }
  }
}

Observed:

Loading prototxt file ... 
INFO: Reading the prototxt file from : /home/ian/test_conv.prototxt
INFO: prototxt read successful 
INFO: Network loaded is : TestConv
INFO: This network doesn't require upgrade

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.