Skip to content

Commit

Permalink
Caffe interp_param (#165)
Browse files Browse the repository at this point in the history
  • Loading branch information
lutzroeder committed Oct 26, 2018
1 parent cca6264 commit 8cb1a10
Show file tree
Hide file tree
Showing 3 changed files with 198 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/caffe-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@
{ "name": "scale" },
{ "name": "bias" }
],
"outputs": [
{ "name": "output" }
],
"attributes": [
{ "name": "filler", "visible": false },
{ "name": "bias_term", "visible": false },
Expand Down
184 changes: 184 additions & 0 deletions src/caffe.js
Original file line number Diff line number Diff line change
Expand Up @@ -3018,6 +3018,7 @@
LayerParameter.prototype.roi_pooling_param_2 = null;
LayerParameter.prototype.normalize_bbox_param = null;
LayerParameter.prototype.bn_param = null;
LayerParameter.prototype.interp_param = null;
LayerParameter.prototype.force_backward = false;

LayerParameter.create = function create(properties) {
Expand Down Expand Up @@ -3312,6 +3313,9 @@
case 1137:
message.bn_param = $root.caffe.BNParameter.decode(reader, reader.uint32());
break;
case 1143:
message.interp_param = $root.caffe.InterpParameter.decode(reader, reader.uint32());
break;
case 8266713:
message.force_backward = reader.bool();
break;
Expand Down Expand Up @@ -3602,6 +3606,9 @@
case "bn_param":
message.bn_param = $root.caffe.BNParameter.decodeText(reader, true);
break;
case "interp_param":
message.interp_param = $root.caffe.InterpParameter.decodeText(reader, true);
break;
case "force_backward":
message.force_backward = reader.bool();
break;
Expand Down Expand Up @@ -4062,6 +4069,11 @@
if (error)
return "bn_param." + error;
}
if (message.interp_param != null && message.hasOwnProperty("interp_param")) {
var error = $root.caffe.InterpParameter.verify(message.interp_param);
if (error)
return "interp_param." + error;
}
if (message.force_backward != null && message.hasOwnProperty("force_backward"))
if (typeof message.force_backward !== "boolean")
return "force_backward: boolean expected";
Expand Down Expand Up @@ -4521,6 +4533,11 @@
throw TypeError(".caffe.LayerParameter.bn_param: object expected");
message.bn_param = $root.caffe.BNParameter.fromObject(object.bn_param);
}
if (object.interp_param != null) {
if (typeof object.interp_param !== "object")
throw TypeError(".caffe.LayerParameter.interp_param: object expected");
message.interp_param = $root.caffe.InterpParameter.fromObject(object.interp_param);
}
if (object.force_backward != null)
message.force_backward = Boolean(object.force_backward);
return message;
Expand Down Expand Up @@ -4616,6 +4633,7 @@
object.region_loss_param = null;
object.eval_detection_param = null;
object.bn_param = null;
object.interp_param = null;
object.roi_pooling_param_2 = null;
object.normalize_bbox_param = null;
object.force_backward = false;
Expand Down Expand Up @@ -4810,6 +4828,8 @@
object.eval_detection_param = $root.caffe.EvalDetectionParameter.toObject(message.eval_detection_param, options);
if (message.bn_param != null && message.hasOwnProperty("bn_param"))
object.bn_param = $root.caffe.BNParameter.toObject(message.bn_param, options);
if (message.interp_param != null && message.hasOwnProperty("interp_param"))
object.interp_param = $root.caffe.InterpParameter.toObject(message.interp_param, options);
if (message.roi_pooling_param_2 != null && message.hasOwnProperty("roi_pooling_param_2"))
object.roi_pooling_param_2 = $root.caffe.ROIPoolingParameter.toObject(message.roi_pooling_param_2, options);
if (message.normalize_bbox_param != null && message.hasOwnProperty("normalize_bbox_param"))
Expand Down Expand Up @@ -6720,6 +6740,170 @@
return BatchReductionParameter;
})();

caffe.InterpParameter = (function() {

function InterpParameter(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
this[keys[i]] = properties[keys[i]];
}

InterpParameter.prototype.height = 0;
InterpParameter.prototype.width = 0;
InterpParameter.prototype.zoom_factor = 1;
InterpParameter.prototype.shrink_factor = 1;
InterpParameter.prototype.pad_beg = 0;
InterpParameter.prototype.pad_end = 0;

InterpParameter.create = function create(properties) {
return new InterpParameter(properties);
};

InterpParameter.decode = function decode(reader, length) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
var end = length === undefined ? reader.len : reader.pos + length, message = new $root.caffe.InterpParameter();
while (reader.pos < end) {
var tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.height = reader.int32();
break;
case 2:
message.width = reader.int32();
break;
case 3:
message.zoom_factor = reader.int32();
break;
case 4:
message.shrink_factor = reader.int32();
break;
case 5:
message.pad_beg = reader.int32();
break;
case 6:
message.pad_end = reader.int32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
};

InterpParameter.decodeText = function decodeText(reader, block) {
if (!(reader instanceof $TextReader))
reader = $TextReader.create(reader);
var message = new $root.caffe.InterpParameter();
reader.start(block);
while (!reader.end(block)) {
var tag = reader.tag();
switch (tag) {
case "height":
message.height = reader.int32();
break;
case "width":
message.width = reader.int32();
break;
case "zoom_factor":
message.zoom_factor = reader.int32();
break;
case "shrink_factor":
message.shrink_factor = reader.int32();
break;
case "pad_beg":
message.pad_beg = reader.int32();
break;
case "pad_end":
message.pad_end = reader.int32();
break;
default:
reader.handle(tag);
break;
}
}
return message;
};

InterpParameter.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
if (message.height != null && message.hasOwnProperty("height"))
if (!$util.isInteger(message.height))
return "height: integer expected";
if (message.width != null && message.hasOwnProperty("width"))
if (!$util.isInteger(message.width))
return "width: integer expected";
if (message.zoom_factor != null && message.hasOwnProperty("zoom_factor"))
if (!$util.isInteger(message.zoom_factor))
return "zoom_factor: integer expected";
if (message.shrink_factor != null && message.hasOwnProperty("shrink_factor"))
if (!$util.isInteger(message.shrink_factor))
return "shrink_factor: integer expected";
if (message.pad_beg != null && message.hasOwnProperty("pad_beg"))
if (!$util.isInteger(message.pad_beg))
return "pad_beg: integer expected";
if (message.pad_end != null && message.hasOwnProperty("pad_end"))
if (!$util.isInteger(message.pad_end))
return "pad_end: integer expected";
return null;
};

InterpParameter.fromObject = function fromObject(object) {
if (object instanceof $root.caffe.InterpParameter)
return object;
var message = new $root.caffe.InterpParameter();
if (object.height != null)
message.height = object.height | 0;
if (object.width != null)
message.width = object.width | 0;
if (object.zoom_factor != null)
message.zoom_factor = object.zoom_factor | 0;
if (object.shrink_factor != null)
message.shrink_factor = object.shrink_factor | 0;
if (object.pad_beg != null)
message.pad_beg = object.pad_beg | 0;
if (object.pad_end != null)
message.pad_end = object.pad_end | 0;
return message;
};

InterpParameter.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.defaults) {
object.height = 0;
object.width = 0;
object.zoom_factor = 1;
object.shrink_factor = 1;
object.pad_beg = 0;
object.pad_end = 0;
}
if (message.height != null && message.hasOwnProperty("height"))
object.height = message.height;
if (message.width != null && message.hasOwnProperty("width"))
object.width = message.width;
if (message.zoom_factor != null && message.hasOwnProperty("zoom_factor"))
object.zoom_factor = message.zoom_factor;
if (message.shrink_factor != null && message.hasOwnProperty("shrink_factor"))
object.shrink_factor = message.shrink_factor;
if (message.pad_beg != null && message.hasOwnProperty("pad_beg"))
object.pad_beg = message.pad_beg;
if (message.pad_end != null && message.hasOwnProperty("pad_end"))
object.pad_end = message.pad_end;
return object;
};

InterpParameter.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};

return InterpParameter;
})();

caffe.LossParameter = (function() {

function LossParameter(properties) {
Expand Down
11 changes: 11 additions & 0 deletions tools/metadata/caffe-update.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ update(
optional ROIPoolingParameter roi_pooling_param_2 = 8266711;
optional NormalizeBBoxParameter normalize_bbox_param = 8266712; // 149
optional BNParameter bn_param = 1137; // 41 in ChenglongChen/batch_normalization, 137 in yjxiong/caffe
optional InterpParameter interp_param = 1143; // 143 indeeplab-public-ver2
optional bool force_backward = 8266713; // ???
}`);

Expand Down Expand Up @@ -246,6 +247,16 @@ message BatchReductionParameter {
optional ReductionParameter reduction_param = 2;
optional bool pos = 3 [default = false];
}
// Message that stores parameters used by InterpLayer
message InterpParameter {
optional int32 height = 1 [default = 0]; // Height of output
optional int32 width = 2 [default = 0]; // Width of output
optional int32 zoom_factor = 3 [default = 1]; // zoom factor
optional int32 shrink_factor = 4 [default = 1]; // shrink factor
optional int32 pad_beg = 5 [default = 0]; // padding at begin of input
optional int32 pad_end = 6 [default = 0]; // padding at end of input
}
`);

add(
Expand Down

0 comments on commit 8cb1a10

Please sign in to comment.