Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SeetaResearch
/
Dragon
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 2f685b88
authored
Aug 20, 2017
by
Ting PAN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix alpha and normalization for SparseSoftmaxFocalLoss
1 parent
ddb76e7b
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
97 additions
and
61 deletions
Dragon/include/operators/loss/sparse_softmax_focal_loss_op.h
Dragon/include/utils/op_kernel.h
Dragon/python/dragon/core/workspace.py
Dragon/python/dragon/operators/loss.py
Dragon/python/dragon/vm/caffe/layers/layer.py
Dragon/python/dragon/vm/caffe/layers/loss.py
Dragon/python/dragon/vm/caffe/proto/caffe.proto
Dragon/python/dragon/vm/caffe/proto/caffe_pb2.py
Dragon/src/operators/loss/softmax_cross_entropy_op.cc
Dragon/src/operators/loss/sparse_softmax_cross_entropy_op.cc
Dragon/src/operators/loss/sparse_softmax_focal_loss_op.cc
Dragon/src/protos/caffemodel.proto
Dragon/src/utils/op_kernel.cc
Dragon/src/utils/op_kernel.cu
Dragon/include/operators/loss/sparse_softmax_focal_loss_op.h
View file @
2f685b8
...
...
@@ -18,18 +18,20 @@ class SparseSoftmaxFocalLossOp final : public SparseSoftmaxCrossEntropyOp<Contex
:
SparseSoftmaxCrossEntropyOp
<
Context
>
(
op_def
,
ws
),
axis
(
OperatorBase
::
GetSingleArg
<
int
>
(
"axis"
,
1
)),
normalization
(
OperatorBase
::
GetSingleArg
<
string
>
(
"normalization"
,
"VALID"
)),
alpha
(
OperatorBase
::
GetSingleArg
<
float
>
(
"alpha"
,
1
.
0
)),
alpha
(
OperatorBase
::
GetSingleArg
<
float
>
(
"alpha"
,
0
.
5
)),
gamma
(
OperatorBase
::
GetSingleArg
<
float
>
(
"gamma"
,
2
.
0
)),
use_pseudo_metric
(
OperatorBase
::
GetSingleArg
<
bool
>
(
"use_pseudo_metric"
,
true
))
{
if
(
alpha
==
1
.
0
)
use_pseudo_metric
=
false
;
neg_id
(
OperatorBase
::
GetSingleArg
<
int
>
(
"neg_id"
,
-
1
))
{
pos_alpha
=
alpha
*
2
.
0
;
neg_alpha
=
(
1
-
alpha
)
*
2
.
0
;
}
void
RunOnDevice
()
override
;
template
<
typename
T
>
void
RunWithType
();
protected
:
float
alpha
,
gamma
;
bool
use_pseudo_metric
;
float
alpha
,
gamma
;
int
neg_id
;
float
pos_alpha
,
neg_alpha
;
TIndex
axis
,
outer_dim
,
inner_dim
;
Tensor
*
scale
;
string
normalization
;
...
...
@@ -43,13 +45,15 @@ class SparseSoftmaxFocalLossGradientOp final : public SparseSoftmaxCrossEntropyG
axis
(
OperatorBase
::
GetSingleArg
<
int
>
(
"axis"
,
1
)),
normalization
(
OperatorBase
::
GetSingleArg
<
string
>
(
"normalization"
,
"VALID"
)),
gamma
(
OperatorBase
::
GetSingleArg
<
float
>
(
"gamma"
,
2
.
0
)),
eps
(
OperatorBase
::
GetSingleArg
<
float
>
(
"eps"
,
float
(
1e-10
)))
{}
eps
(
OperatorBase
::
GetSingleArg
<
float
>
(
"eps"
,
float
(
1e-10
))),
neg_id
(
OperatorBase
::
GetSingleArg
<
int
>
(
"neg_id"
,
-
1
))
{}
void
RunOnDevice
()
override
;
template
<
typename
T
>
void
RunWithType
();
protected
:
float
gamma
,
eps
;
int
neg_id
;
TIndex
axis
,
outer_dim
,
inner_dim
;
Tensor
*
scale
;
string
normalization
;
...
...
Dragon/include/utils/op_kernel.h
View file @
2f685b8
...
...
@@ -340,8 +340,10 @@ void SparseSoftmaxFocalLoss(const int count,
const
int
classes
,
const
int
outer_dim
,
const
int
inner_dim
,
const
float
alpha
,
const
float
pos_alpha
,
const
float
neg_alpha
,
const
float
gamma
,
const
int
neg_id
,
const
T
*
prob
,
const
T
*
labels
,
T
*
scale
,
...
...
@@ -355,6 +357,7 @@ void SparseSoftmaxFocalLossGrad(const int count,
const
int
outer_dim
,
const
int
inner_dim
,
const
float
gamma
,
const
int
neg_id
,
const
float
eps
,
const
T
*
scale
,
const
T
*
prob
,
...
...
Dragon/python/dragon/core/workspace.py
View file @
2f685b8
...
...
@@ -90,6 +90,7 @@ def FeedTensor(tensor, ndarray, force_cpu=False, dtype=None):
ndarray
=
np
.
array
(
ndarray
,
dtype
=
dtype
)
FeedTensorCC
(
tensor
,
ndarray
,
StringfyProto
(
dev
))
stages
=
{
'forward'
:
{
'include'
:
''
,
'exclude'
:
'Gradient'
},
'backward'
:
{
'include'
:
'Gradient'
,
'exclude'
:
'Generate'
},
...
...
@@ -119,6 +120,7 @@ def RunGraph(graph_name, inputs=(), outputs=[], stage=None, return_outputs=True)
def
PrintRawGraphDef
(
graph_def
):
logger
.
info
(
graph_def
)
def
PrintOptimizedGraph
(
graph_def
):
graph_name
=
graph_def
.
name
graph_tensor
=
'GraphDef_'
+
graph_name
...
...
@@ -156,6 +158,7 @@ def Snapshot(tensors, filename, prefix='', suffix='.bin', format=0):
names
=
[
tensor
.
name
for
tensor
in
tensors
]
SnapshotCC
(
filepath
,
names
,
format
)
def
Restore
(
filename
,
format
=
0
):
if
mpi
.
is_init
():
if
not
mpi
.
allow_snapshot
():
...
...
Dragon/python/dragon/operators/loss.py
View file @
2f685b8
...
...
@@ -123,7 +123,7 @@ def L2Loss(inputs, normalization='BATCH_SIZE', **kwargs):
def
SparseSoftmaxFocalLoss
(
inputs
,
axis
=
1
,
normalization
=
'VALID'
,
ignore_labels
=
(),
alpha
=
0.
25
,
gamma
=
2.0
,
eps
=
1e-10
,
use_pseudo_metric
=
True
,
**
kwargs
):
alpha
=
0.
5
,
gamma
=
2.0
,
eps
=
1e-10
,
neg_id
=-
1
,
**
kwargs
):
"""
:param inputs: a list of Tensor contains [input, label]
:param axis a int of using which axis to compute softmax
...
...
Dragon/python/dragon/vm/caffe/layers/layer.py
View file @
2f685b8
...
...
@@ -21,6 +21,9 @@ class Layer(object):
self
.
_param
=
{}
self
.
_common_param
=
{}
self
.
_loss_weight
=
None
if
len
(
LayerParameter
.
loss_weight
)
==
0
\
else
LayerParameter
.
loss_weight
for
include
in
LayerParameter
.
include
:
mpi_rank
=
[
int
(
rank
)
for
rank
in
include
.
mpi_rank
]
if
len
(
mpi_rank
)
>
0
:
self
.
_common_param
[
'mpi_rank'
]
=
mpi_rank
...
...
Dragon/python/dragon/vm/caffe/layers/loss.py
View file @
2f685b8
...
...
@@ -24,7 +24,9 @@ class SoftmaxWithLossLayer(Layer):
def
Setup
(
self
,
bottom
):
super
(
SoftmaxWithLossLayer
,
self
)
.
Setup
(
bottom
)
return
ops
.
SparseSoftmaxCrossEntropy
(
bottom
,
**
self
.
_param
)
loss
=
ops
.
SparseSoftmaxCrossEntropy
(
bottom
,
**
self
.
_param
)
if
self
.
_loss_weight
is
not
None
:
loss
*=
self
.
_loss_weight
return
loss
class
SigmoidCrossEntropyLossLayer
(
Layer
):
...
...
@@ -40,7 +42,8 @@ class SigmoidCrossEntropyLossLayer(Layer):
def
Setup
(
self
,
bottom
):
super
(
SigmoidCrossEntropyLossLayer
,
self
)
.
Setup
(
bottom
)
return
ops
.
SigmoidCrossEntropy
(
bottom
,
**
self
.
_param
)
loss
=
ops
.
SigmoidCrossEntropy
(
bottom
,
**
self
.
_param
)
if
self
.
_loss_weight
is
not
None
:
loss
*=
self
.
_loss_weight
class
L2LossLayer
(
Layer
):
...
...
@@ -52,7 +55,9 @@ class L2LossLayer(Layer):
def
Setup
(
self
,
bottom
):
super
(
L2LossLayer
,
self
)
.
Setup
(
bottom
)
return
ops
.
L2Loss
(
bottom
,
**
self
.
_param
)
loss
=
ops
.
L2Loss
(
bottom
,
**
self
.
_param
)
if
self
.
_loss_weight
is
not
None
:
loss
*=
self
.
_loss_weight
return
loss
class
SmoothL1LossLayer
(
Layer
):
...
...
@@ -63,7 +68,9 @@ class SmoothL1LossLayer(Layer):
def
Setup
(
self
,
bottom
):
super
(
SmoothL1LossLayer
,
self
)
.
Setup
(
bottom
)
return
ops
.
SmoothL1Loss
(
bottom
,
**
self
.
_param
)
loss
=
ops
.
SmoothL1Loss
(
bottom
,
**
self
.
_param
)
if
self
.
_loss_weight
is
not
None
:
loss
*=
self
.
_loss_weight
return
loss
class
SoftmaxWithFocalLossLayer
(
Layer
):
...
...
@@ -83,8 +90,10 @@ class SoftmaxWithFocalLossLayer(Layer):
'alpha'
:
float
(
focal_loss_param
.
alpha
),
'gamma'
:
float
(
focal_loss_param
.
gamma
),
'eps'
:
float
(
focal_loss_param
.
eps
),
'
use_pseudo_metric'
:
focal_loss_param
.
use_pseudo_metric
}
'
neg_id'
:
focal_loss_param
.
neg_id
}
def
Setup
(
self
,
bottom
):
super
(
SoftmaxWithFocalLossLayer
,
self
)
.
Setup
(
bottom
)
return
ops
.
SparseSoftmaxFocalLoss
(
bottom
,
**
self
.
_param
)
loss
=
ops
.
SparseSoftmaxFocalLoss
(
bottom
,
**
self
.
_param
)
if
self
.
_loss_weight
is
not
None
:
loss
*=
self
.
_loss_weight
return
loss
Dragon/python/dragon/vm/caffe/proto/caffe.proto
View file @
2f685b8
...
...
@@ -1509,6 +1509,6 @@ message FocalLossParameter {
optional
float
alpha
=
1
[
default
=
1.0
];
optional
float
gamma
=
2
[
default
=
0.25
];
optional
float
eps
=
3
[
default
=
1e-10
];
optional
bool
use_pseudo_metric
=
4
[
default
=
true
];
optional
int32
neg_id
=
4
[
default
=
-
1
];
}
Dragon/python/dragon/vm/caffe/proto/caffe_pb2.py
View file @
2f685b8
...
...
@@ -19,7 +19,7 @@ _sym_db = _symbol_database.Default()
DESCRIPTOR
=
_descriptor
.
FileDescriptor
(
name
=
'caffe.proto'
,
package
=
'caffe'
,
serialized_pb
=
_b
(
'
\n\x0b\x63\x61\x66\x66\x65
.proto
\x12\x05\x63\x61\x66\x66\x65\"\x1c\n\t
BlobShape
\x12\x0f\n\x03\x64
im
\x18\x01
\x03
(
\x03\x42\x02\x10\x01\"\xcc\x01\n\t
BlobProto
\x12\x1f\n\x05
shape
\x18\x07
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x10\n\x04\x64\x61
ta
\x18\x05
\x03
(
\x02\x42\x02\x10\x01\x12\x10\n\x04\x64
iff
\x18\x06
\x03
(
\x02\x42\x02\x10\x01\x12\x17\n\x0b\x64
ouble_data
\x18\x08
\x03
(
\x01\x42\x02\x10\x01\x12\x17\n\x0b\x64
ouble_diff
\x18\t
\x03
(
\x01\x42\x02\x10\x01\x12\x0e\n\x03
num
\x18\x01
\x01
(
\x05
:
\x01\x30\x12\x13\n\x08\x63
hannels
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\x11\n\x06
height
\x18\x03
\x01
(
\x05
:
\x01\x30\x12\x10\n\x05
width
\x18\x04
\x01
(
\x05
:
\x01\x30\"
2
\n\x0f\x42
lobProtoVector
\x12\x1f\n\x05\x62
lobs
\x18\x01
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\"\x81\x01\n\x05\x44\x61
tum
\x12\x10\n\x08\x63
hannels
\x18\x01
\x01
(
\x05\x12\x0e\n\x06
height
\x18\x02
\x01
(
\x05\x12\r\n\x05
width
\x18\x03
\x01
(
\x05\x12\x0c\n\x04\x64\x61
ta
\x18\x04
\x01
(
\x0c\x12\r\n\x05
label
\x18\x05
\x01
(
\x05\x12\x12\n\n
float_data
\x18\x06
\x03
(
\x02\x12\x16\n\x07\x65
ncoded
\x18\x07
\x01
(
\x08
:
\x05\x66\x61
lse
\"\x8a\x02\n\x0f\x46
illerParameter
\x12\x16\n\x04
type
\x18\x01
\x01
(
\t
:
\x08\x63
onstant
\x12\x10\n\x05
value
\x18\x02
\x01
(
\x02
:
\x01\x30\x12\x0e\n\x03
min
\x18\x03
\x01
(
\x02
:
\x01\x30\x12\x0e\n\x03
max
\x18\x04
\x01
(
\x02
:
\x01\x31\x12\x0f\n\x04
mean
\x18\x05
\x01
(
\x02
:
\x01\x30\x12\x0e\n\x03
std
\x18\x06
\x01
(
\x02
:
\x01\x31\x12\x12\n\x06
sparse
\x18\x07
\x01
(
\x05
:
\x02
-1
\x12\x42\n\r
variance_norm
\x18\x08
\x01
(
\x0e\x32
#.caffe.FillerParameter.VarianceNorm:
\x06\x46\x41
N_IN
\"
4
\n\x0c
VarianceNorm
\x12\n\n\x06\x46\x41
N_IN
\x10\x00\x12\x0b\n\x07\x46\x41
N_OUT
\x10\x01\x12\x0b\n\x07\x41
VERAGE
\x10\x02\"\x8e\x02\n\x0c
NetParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\r\n\x05
input
\x18\x03
\x03
(
\t\x12
%
\n\x0b
input_shape
\x18\x08
\x03
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x11\n\t
input_dim
\x18\x04
\x03
(
\x05\x12\x1d\n\x0e\x66
orce_backward
\x18\x05
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1e\n\x05
state
\x18\x06
\x01
(
\x0b\x32\x0f
.caffe.NetState
\x12\x19\n\n
debug_info
\x18\x07
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
$
\n\x05
layer
\x18\x64
\x03
(
\x0b\x32\x15
.caffe.LayerParameter
\x12\'\n\x06
layers
\x18\x02
\x03
(
\x0b\x32\x17
.caffe.V1LayerParameter
\"\xc9\n\n\x0f
SolverParameter
\x12\x0b\n\x03
net
\x18\x18
\x01
(
\t\x12
&
\n\t
net_param
\x18\x19
\x01
(
\x0b\x32\x13
.caffe.NetParameter
\x12\x11\n\t
train_net
\x18\x01
\x01
(
\t\x12\x10\n\x08
test_net
\x18\x02
\x03
(
\t\x12
,
\n\x0f
train_net_param
\x18\x15
\x01
(
\x0b\x32\x13
.caffe.NetParameter
\x12
+
\n\x0e
test_net_param
\x18\x16
\x03
(
\x0b\x32\x13
.caffe.NetParameter
\x12
$
\n\x0b
train_state
\x18\x1a
\x01
(
\x0b\x32\x0f
.caffe.NetState
\x12
#
\n\n
test_state
\x18\x1b
\x03
(
\x0b\x32\x0f
.caffe.NetState
\x12\x11\n\t
test_iter
\x18\x03
\x03
(
\x05\x12\x18\n\r
test_interval
\x18\x04
\x01
(
\x05
:
\x01\x30\x12
\n\x11
test_compute_loss
\x18\x13
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
!
\n\x13
test_initialization
\x18
\x01
(
\x08
:
\x04
true
\x12\x0f\n\x07\x62\x61
se_lr
\x18\x05
\x01
(
\x02\x12\x10\n\x08
stage_lr
\x18\x32
\x03
(
\x02\x12\x12\n\n
stage_iter
\x18\x33
\x03
(
\x05\x12\x0f\n\x07\x64
isplay
\x18\x06
\x01
(
\x05\x12\x17\n\x0c\x61
verage_loss
\x18
!
\x01
(
\x05
:
\x01\x31\x12\x10\n\x08
max_iter
\x18\x07
\x01
(
\x05\x12\x14\n\t
iter_size
\x18
$
\x01
(
\x05
:
\x01\x31\x12\x11\n\t
lr_policy
\x18\x08
\x01
(
\t\x12\r\n\x05
gamma
\x18\t
\x01
(
\x02\x12\r\n\x05
power
\x18\n
\x01
(
\x02\x12\x10\n\x08
momentum
\x18\x0b
\x01
(
\x02\x12\x14\n\x0c
weight_decay
\x18\x0c
\x01
(
\x02\x12\x1f\n\x13
regularization_type
\x18\x1d
\x01
(
\t
:
\x02
L2
\x12\x10\n\x08
stepsize
\x18\r
\x01
(
\x05\x12\x11\n\t
stepvalue
\x18\"
\x03
(
\x05\x12\x1a\n\x0e\x63
lip_gradients
\x18
#
\x01
(
\x02
:
\x02
-1
\x12\x13\n\x08
snapshot
\x18\x0e
\x01
(
\x05
:
\x01\x30\x12\x17\n\x0f
snapshot_prefix
\x18\x0f
\x01
(
\t\x12\x1c\n\r
snapshot_diff
\x18\x10
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
K
\n\x0f
snapshot_format
\x18
%
\x01
(
\x0e\x32
%
.caffe.SolverParameter.SnapshotFormat:
\x0b\x42
INARYPROTO
\x12
;
\n\x0b
solver_mode
\x18\x11
\x01
(
\x0e\x32
!.caffe.SolverParameter.SolverMode:
\x03
GPU
\x12\x14\n\t
device_id
\x18\x12
\x01
(
\x05
:
\x01\x30\x12\x17\n\x0b
random_seed
\x18\x14
\x01
(
\x03
:
\x02
-1
\x12\x11\n\x04
type
\x18
(
\x01
(
\t
:
\x03
SGD
\x12\x15\n\x05\x64\x65
lta
\x18\x1f
\x01
(
\x02
:
\x06\x31\x65
-008
\x12\x18\n\t
momentum2
\x18\'
\x01
(
\x02
:
\x05\x30
.999
\x12\x17\n\t
rms_decay
\x18
&
\x01
(
\x02
:
\x04\x30
.99
\x12\x19\n\n
debug_info
\x18\x17
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\"\n\x14
snapshot_after_train
\x18\x1c
\x01
(
\x08
:
\x04
true
\x12
;
\n\x0b
solver_type
\x18\x1e
\x01
(
\x0e\x32
!.caffe.SolverParameter.SolverType:
\x03
SGD
\"
+
\n\x0e
SnapshotFormat
\x12\x08\n\x04
HDF5
\x10\x00\x12\x0f\n\x0b\x42
INARYPROTO
\x10\x01\"\x1e\n\n
SolverMode
\x12\x07\n\x03\x43
PU
\x10\x00\x12\x07\n\x03
GPU
\x10\x01\"
U
\n\n
SolverType
\x12\x07\n\x03
SGD
\x10\x00\x12\x0c\n\x08
NESTEROV
\x10\x01\x12\x0b\n\x07\x41\x44\x41
GRAD
\x10\x02\x12\x0b\n\x07
RMSPROP
\x10\x03\x12\x0c\n\x08\x41\x44\x41\x44\x45
LTA
\x10\x04\x12\x08\n\x04\x41\x44\x41
M
\x10\x05\"
l
\n\x0b
SolverState
\x12\x0c\n\x04
iter
\x18\x01
\x01
(
\x05\x12\x13\n\x0b
learned_net
\x18\x02
\x01
(
\t\x12
!
\n\x07
history
\x18\x03
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x17\n\x0c\x63
urrent_step
\x18\x04
\x01
(
\x05
:
\x01\x30\"
N
\n\x08
NetState
\x12
!
\n\x05
phase
\x18\x01
\x01
(
\x0e\x32\x0c
.caffe.Phase:
\x04
TEST
\x12\x10\n\x05
level
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\r\n\x05
stage
\x18\x03
\x03
(
\t\"\x85\x01\n\x0c
NetStateRule
\x12\x1b\n\x05
phase
\x18\x01
\x01
(
\x0e\x32\x0c
.caffe.Phase
\x12\x11\n\t
min_level
\x18\x02
\x01
(
\x05\x12\x11\n\t
max_level
\x18\x03
\x01
(
\x05\x12\r\n\x05
stage
\x18\x04
\x03
(
\t\x12\x11\n\t
not_stage
\x18\x05
\x03
(
\t\x12\x10\n\x08
mpi_rank
\x18\x06
\x03
(
\r\"\xa3\x01\n\t
ParamSpec
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\x31\n\n
share_mode
\x18\x02
\x01
(
\x0e\x32\x1d
.caffe.ParamSpec.DimCheckMode
\x12\x12\n\x07
lr_mult
\x18\x03
\x01
(
\x02
:
\x01\x31\x12\x15\n\n
decay_mult
\x18\x04
\x01
(
\x02
:
\x01\x31\"
*
\n\x0c\x44
imCheckMode
\x12\n\n\x06
STRICT
\x10\x00\x12\x0e\n\n
PERMISSIVE
\x10\x01\"\x9d\x19\n\x0e
LayerParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\x0c\n\x04
type
\x18\x02
\x01
(
\t\x12\x0e\n\x06\x62
ottom
\x18\x03
\x03
(
\t\x12\x0b\n\x03
top
\x18\x04
\x03
(
\t\x12\x1c\n\x0c
mirrow_stage
\x18\xa2\x01
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1b\n\x05
phase
\x18\n
\x01
(
\x0e\x32\x0c
.caffe.Phase
\x12\x13\n\x0b
loss_weight
\x18\x05
\x03
(
\x02\x12\x1f\n\x05
param
\x18\x06
\x03
(
\x0b\x32\x10
.caffe.ParamSpec
\x12\x1f\n\x05\x62
lobs
\x18\x07
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x16\n\x0e
propagate_down
\x18\x0b
\x03
(
\x08\x12
$
\n\x07
include
\x18\x08
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12
$
\n\x07\x65
xclude
\x18\t
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12\x37\n\x0f
transform_param
\x18\x64
\x01
(
\x0b\x32\x1e
.caffe.TransformationParameter
\x12
(
\n\n
loss_param
\x18\x65
\x01
(
\x0b\x32\x14
.caffe.LossParameter
\x12\x30\n\x0e\x61\x63\x63
uracy_param
\x18\x66
\x01
(
\x0b\x32\x18
.caffe.AccuracyParameter
\x12
,
\n\x0c\x61
rgmax_param
\x18
g
\x01
(
\x0b\x32\x16
.caffe.ArgMaxParameter
\x12\x34\n\x10\x62\x61
tch_norm_param
\x18\x8b\x01
\x01
(
\x0b\x32\x19
.caffe.BatchNormParameter
\x12
)
\n\n
bias_param
\x18\x8d\x01
\x01
(
\x0b\x32\x14
.caffe.BiasParameter
\x12
,
\n\x0c\x63
oncat_param
\x18
h
\x01
(
\x0b\x32\x16
.caffe.ConcatParameter
\x12
?
\n\x16\x63
ontrastive_loss_param
\x18
i
\x01
(
\x0b\x32\x1f
.caffe.ContrastiveLossParameter
\x12\x36\n\x11\x63
onvolution_param
\x18
j
\x01
(
\x0b\x32\x1b
.caffe.ConvolutionParameter
\x12
)
\n\n
crop_param
\x18\x90\x01
\x01
(
\x0b\x32\x14
.caffe.CropParameter
\x12
(
\n\n
data_param
\x18
k
\x01
(
\x0b\x32\x14
.caffe.DataParameter
\x12
.
\n\r
dropout_param
\x18
l
\x01
(
\x0b\x32\x17
.caffe.DropoutParameter
\x12\x33\n\x10\x64
ummy_data_param
\x18
m
\x01
(
\x0b\x32\x19
.caffe.DummyDataParameter
\x12
.
\n\r
eltwise_param
\x18
n
\x01
(
\x0b\x32\x17
.caffe.EltwiseParameter
\x12\'\n\t
elu_param
\x18\x8c\x01
\x01
(
\x0b\x32\x13
.caffe.ELUParameter
\x12
+
\n\x0b\x65
mbed_param
\x18\x89\x01
\x01
(
\x0b\x32\x15
.caffe.EmbedParameter
\x12
&
\n\t
exp_param
\x18
o
\x01
(
\x0b\x32\x13
.caffe.ExpParameter
\x12
/
\n\r
flatten_param
\x18\x87\x01
\x01
(
\x0b\x32\x17
.caffe.FlattenParameter
\x12\x31\n\x0f
hdf5_data_param
\x18
p
\x01
(
\x0b\x32\x18
.caffe.HDF5DataParameter
\x12\x35\n\x11
hdf5_output_param
\x18
q
\x01
(
\x0b\x32\x1a
.caffe.HDF5OutputParameter
\x12\x33\n\x10
hinge_loss_param
\x18
r
\x01
(
\x0b\x32\x19
.caffe.HingeLossParameter
\x12\x33\n\x10
image_data_param
\x18
s
\x01
(
\x0b\x32\x19
.caffe.ImageDataParameter
\x12\x39\n\x13
infogain_loss_param
\x18
t
\x01
(
\x0b\x32\x1c
.caffe.InfogainLossParameter
\x12\x39\n\x13
inner_product_param
\x18
u
\x01
(
\x0b\x32\x1c
.caffe.InnerProductParameter
\x12
+
\n\x0b
input_param
\x18\x8f\x01
\x01
(
\x0b\x32\x15
.caffe.InputParameter
\x12\'\n\t
log_param
\x18\x86\x01
\x01
(
\x0b\x32\x13
.caffe.LogParameter
\x12
&
\n\t
lrn_param
\x18
v
\x01
(
\x0b\x32\x13
.caffe.LRNParameter
\x12\x35\n\x11
memory_data_param
\x18
w
\x01
(
\x0b\x32\x1a
.caffe.MemoryDataParameter
\x12
&
\n\t
mvn_param
\x18
x
\x01
(
\x0b\x32\x13
.caffe.MVNParameter
\x12\x33\n\x0f
parameter_param
\x18\x91\x01
\x01
(
\x0b\x32\x19
.caffe.ParameterParameter
\x12
.
\n\r
pooling_param
\x18
y
\x01
(
\x0b\x32\x17
.caffe.PoolingParameter
\x12
*
\n\x0b
power_param
\x18
z
\x01
(
\x0b\x32\x15
.caffe.PowerParameter
\x12
+
\n\x0b
prelu_param
\x18\x83\x01
\x01
(
\x0b\x32\x15
.caffe.PReLUParameter
\x12
-
\n\x0c
python_param
\x18\x82\x01
\x01
(
\x0b\x32\x16
.caffe.PythonParameter
\x12\x33\n\x0f
reduction_param
\x18\x88\x01
\x01
(
\x0b\x32\x19
.caffe.ReductionParameter
\x12
(
\n\n
relu_param
\x18
{
\x01
(
\x0b\x32\x14
.caffe.ReLUParameter
\x12
/
\n\r
reshape_param
\x18\x85\x01
\x01
(
\x0b\x32\x17
.caffe.ReshapeParameter
\x12
+
\n\x0b
scale_param
\x18\x8e\x01
\x01
(
\x0b\x32\x15
.caffe.ScaleParameter
\x12
.
\n\r
sigmoid_param
\x18
|
\x01
(
\x0b\x32\x17
.caffe.SigmoidParameter
\x12
.
\n\r
softmax_param
\x18
}
\x01
(
\x0b\x32\x17
.caffe.SoftmaxParameter
\x12\'\n\t
spp_param
\x18\x84\x01
\x01
(
\x0b\x32\x13
.caffe.SPPParameter
\x12
*
\n\x0b
slice_param
\x18
~
\x01
(
\x0b\x32\x15
.caffe.SliceParameter
\x12
(
\n\n
tanh_param
\x18\x7f
\x01
(
\x0b\x32\x14
.caffe.TanHParameter
\x12\x33\n\x0f
threshold_param
\x18\x80\x01
\x01
(
\x0b\x32\x19
.caffe.ThresholdParameter
\x12
)
\n\n
tile_param
\x18\x8a\x01
\x01
(
\x0b\x32\x14
.caffe.TileParameter
\x12\x36\n\x11
window_data_param
\x18\x81\x01
\x01
(
\x0b\x32\x1a
.caffe.WindowDataParameter
\x12\x31\n\x0e
imagenet_param
\x18\x96\x01
\x01
(
\x0b\x32\x18
.caffe.ImagenetParameter
\x12\x36\n\x11
roi_pooling_param
\x18\x97\x01
\x01
(
\x0b\x32\x1a
.caffe.ROIPoolingParameter
\x12
;
\n\x14
smooth_l1_loss_param
\x18\x98\x01
\x01
(
\x0b\x32\x1c
.caffe.SmoothL1LossParameter
\x12\'\n\t
mpi_param
\x18\x99\x01
\x01
(
\x0b\x32\x13
.caffe.MPIParameter
\x12
/
\n\r
permute_param
\x18\x9a\x01
\x01
(
\x0b\x32\x17
.caffe.PermuteParameter
\x12\x33\n\x0f
normalize_param
\x18\x9b\x01
\x01
(
\x0b\x32\x19
.caffe.NormalizeParameter
\x12\x31\n\x0e
parallel_param
\x18\x9d\x01
\x01
(
\x0b\x32\x18
.caffe.ParallelParameter
\x12\x31\n\x0e
nnresize_param
\x18\x9e\x01
\x01
(
\x0b\x32\x18
.caffe.NNResizeParameter
\x12\x36\n\x11\x65
xpand_dims_param
\x18\x9f\x01
\x01
(
\x0b\x32\x1a
.caffe.ExpandDimsParameter
\x12\x31\n\x0e
proposal_param
\x18\xa0\x01
\x01
(
\x0b\x32\x18
.caffe.ProposalParameter
\x12\x38\n\x12\x62\x61
tch_renorm_param
\x18\xa1\x01
\x01
(
\x0b\x32\x1b
.caffe.BatchRenormParameter
\x12\x38\n\x12\x64\x65
nse_concat_param
\x18\xa3\x01
\x01
(
\x0b\x32\x1b
.caffe.DenseConcatParameter
\x12\x34\n\x10\x66
ocal_loss_param
\x18\xa4\x01
\x01
(
\x0b\x32\x19
.caffe.FocalLossParameter
\"\x93\x02\n\x17
TransformationParameter
\x12\x10\n\x05
scale
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x15\n\x06
mirror
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x14\n\t
crop_size
\x18\x03
\x01
(
\r
:
\x01\x30\x12\x11\n\t
mean_file
\x18\x04
\x01
(
\t\x12\x12\n\n
mean_value
\x18\x05
\x03
(
\x02\x12\x1a\n\x0b\x66
orce_color
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x19\n\n
force_gray
\x18\x07
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
!
\n\x12\x63
olor_augmentation
\x18\x08
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1b\n\x10
min_random_scale
\x18\t
\x01
(
\x02
:
\x01\x31\x12\x1b\n\x10
max_random_scale
\x18\n
\x01
(
\x02
:
\x01\x31\"\xeb\x01\n\r
LossParameter
\x12\x14\n\x0c
ignore_label
\x18\x01
\x01
(
\x05\x12\x44\n\r
normalization
\x18\x03
\x01
(
\x0e\x32
&.caffe.LossParameter.NormalizationMode:
\x05
VALID
\x12\x11\n\t
normalize
\x18\x02
\x01
(
\x08\x1a\'\n\x13\x45
xpandDimsParameter
\x12\x10\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x02
-1
\"
B
\n\x11
NormalizationMode
\x12\x08\n\x04\x46
ULL
\x10\x00\x12\t\n\x05
VALID
\x10\x01\x12\x0e\n\n
BATCH_SIZE
\x10\x02\x12\x08\n\x04
NONE
\x10\x03\"
L
\n\x11\x41\x63\x63
uracyParameter
\x12\x10\n\x05
top_k
\x18\x01
\x01
(
\r
:
\x01\x31\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x31\x12\x14\n\x0c
ignore_label
\x18\x03
\x01
(
\x05\"
M
\n\x0f\x41
rgMaxParameter
\x12\x1a\n\x0b
out_max_val
\x18\x01
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x10\n\x05
top_k
\x18\x02
\x01
(
\r
:
\x01\x31\x12\x0c\n\x04\x61
xis
\x18\x03
\x01
(
\x05\"
9
\n\x0f\x43
oncatParameter
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x31\x12\x15\n\n
concat_dim
\x18\x01
\x01
(
\r
:
\x01\x31\"
h
\n\x12\x42\x61
tchNormParameter
\x12\x18\n\x10
use_global_stats
\x18\x01
\x01
(
\x08\x12
$
\n\x17
moving_average_fraction
\x18\x02
\x01
(
\x02
:
\x03\x30
.9
\x12\x12\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x05\x30
.001
\"
]
\n\r
BiasParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x13\n\x08
num_axes
\x18\x02
\x01
(
\x05
:
\x01\x31\x12
&
\n\x06\x66
iller
\x18\x03
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\"
L
\n\x18\x43
ontrastiveLossParameter
\x12\x11\n\x06
margin
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x1d\n\x0e
legacy_version
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\"\xfc\x03\n\x14\x43
onvolutionParameter
\x12\x12\n\n
num_output
\x18\x01
\x01
(
\r\x12\x17\n\t
bias_term
\x18\x02
\x01
(
\x08
:
\x04
true
\x12\x0b\n\x03
pad
\x18\x03
\x03
(
\r\x12\x13\n\x0b
kernel_size
\x18\x04
\x03
(
\r\x12\x0e\n\x06
stride
\x18\x06
\x03
(
\r\x12\x10\n\x08\x64
ilation
\x18\x12
\x03
(
\r\x12\x10\n\x05
pad_h
\x18\t
\x01
(
\r
:
\x01\x30\x12\x10\n\x05
pad_w
\x18\n
\x01
(
\r
:
\x01\x30\x12\x10\n\x08
kernel_h
\x18\x0b
\x01
(
\r\x12\x10\n\x08
kernel_w
\x18\x0c
\x01
(
\r\x12\x10\n\x08
stride_h
\x18\r
\x01
(
\r\x12\x10\n\x08
stride_w
\x18\x0e
\x01
(
\r\x12\x10\n\x05
group
\x18\x05
\x01
(
\r
:
\x01\x31\x12
-
\n\r
weight_filler
\x18\x07
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x08
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
;
\n\x06\x65
ngine
\x18\x0f
\x01
(
\x0e\x32\"
.caffe.ConvolutionParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\x12\x0f\n\x04\x61
xis
\x18\x10
\x01
(
\x05
:
\x01\x31\x12\x1e\n\x0f\x66
orce_nd_im2col
\x18\x11
\x01
(
\x08
:
\x05\x66\x61
lse
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
0
\n\r
CropParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x32\x12\x0e\n\x06
offset
\x18\x02
\x03
(
\r\"\xa4\x02\n\r
DataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x04
\x01
(
\r\x12\x14\n\t
rand_skip
\x18\x07
\x01
(
\r
:
\x01\x30\x12\x31\n\x07\x62\x61\x63
kend
\x18\x08
\x01
(
\x0e\x32\x17
.caffe.DataParameter.DB:
\x07
LEVELDB
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x11\n\t
mean_file
\x18\x03
\x01
(
\t\x12\x14\n\t
crop_size
\x18\x05
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\"\n\x13\x66
orce_encoded_color
\x18\t
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x13\n\x08
prefetch
\x18\n
\x01
(
\r
:
\x01\x35\"\x1b\n\x02\x44\x42\x12\x0b\n\x07
LEVELDB
\x10\x00\x12\x08\n\x04
LMDB
\x10\x01\"
I
\n\x10\x44
ropoutParameter
\x12\x1a\n\r
dropout_ratio
\x18\x01
\x01
(
\x02
:
\x03\x30
.5
\x12\x19\n\x0b
scale_train
\x18\x02
\x01
(
\x08
:
\x04
true
\"\xa0\x01\n\x12\x44
ummyDataParameter
\x12
+
\n\x0b\x64\x61
ta_filler
\x18\x01
\x03
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x1f\n\x05
shape
\x18\x06
\x03
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x0b\n\x03
num
\x18\x02
\x03
(
\r\x12\x10\n\x08\x63
hannels
\x18\x03
\x03
(
\r\x12\x0e\n\x06
height
\x18\x04
\x03
(
\r\x12\r\n\x05
width
\x18\x05
\x03
(
\r\"\xa5\x01\n\x10\x45
ltwiseParameter
\x12\x39\n\t
operation
\x18\x01
\x01
(
\x0e\x32
!.caffe.EltwiseParameter.EltwiseOp:
\x03
SUM
\x12\r\n\x05\x63
oeff
\x18\x02
\x03
(
\x02\x12\x1e\n\x10
stable_prod_grad
\x18\x03
\x01
(
\x08
:
\x04
true
\"\'\n\t
EltwiseOp
\x12\x08\n\x04
PROD
\x10\x00\x12\x07\n\x03
SUM
\x10\x01\x12\x07\n\x03
MAX
\x10\x02\"
\n\x0c\x45
LUParameter
\x12\x10\n\x05\x61
lpha
\x18\x01
\x01
(
\x02
:
\x01\x31\"\xac\x01\n\x0e\x45
mbedParameter
\x12\x12\n\n
num_output
\x18\x01
\x01
(
\r\x12\x11\n\t
input_dim
\x18\x02
\x01
(
\r\x12\x17\n\t
bias_term
\x18\x03
\x01
(
\x08
:
\x04
true
\x12
-
\n\r
weight_filler
\x18\x04
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x05
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\"
D
\n\x0c\x45
xpParameter
\x12\x10\n\x04\x62\x61
se
\x18\x01
\x01
(
\x02
:
\x02
-1
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
shift
\x18\x03
\x01
(
\x02
:
\x01\x30\"
9
\n\x10\x46
lattenParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x14\n\x08\x65
nd_axis
\x18\x02
\x01
(
\x05
:
\x02
-1
\"
O
\n\x11
HDF5DataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x02
\x01
(
\r\x12\x16\n\x07
shuffle
\x18\x03
\x01
(
\x08
:
\x05\x66\x61
lse
\"
(
\n\x13
HDF5OutputParameter
\x12\x11\n\t
file_name
\x18\x01
\x01
(
\t\"
^
\n\x12
HingeLossParameter
\x12\x30\n\x04
norm
\x18\x01
\x01
(
\x0e\x32\x1e
.caffe.HingeLossParameter.Norm:
\x02
L1
\"\x16\n\x04
Norm
\x12\x06\n\x02
L1
\x10\x01\x12\x06\n\x02
L2
\x10\x02\"\x97\x02\n\x12
ImageDataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x15\n\n
batch_size
\x18\x04
\x01
(
\r
:
\x01\x31\x12\x14\n\t
rand_skip
\x18\x07
\x01
(
\r
:
\x01\x30\x12\x16\n\x07
shuffle
\x18\x08
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\n
new_height
\x18\t
\x01
(
\r
:
\x01\x30\x12\x14\n\t
new_width
\x18\n
\x01
(
\r
:
\x01\x30\x12\x16\n\x08
is_color
\x18\x0b
\x01
(
\x08
:
\x04
true
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x11\n\t
mean_file
\x18\x03
\x01
(
\t\x12\x14\n\t
crop_size
\x18\x05
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\x0b
root_folder
\x18\x0c
\x01
(
\t
:
\x00\"\'\n\x15
InfogainLossParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\"\xcb\x01\n\x15
InnerProductParameter
\x12\x12\n\n
num_output
\x18\x01
\x01
(
\r\x12\x17\n\t
bias_term
\x18\x02
\x01
(
\x08
:
\x04
true
\x12
-
\n\r
weight_filler
\x18\x03
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x04
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x0f\n\x04\x61
xis
\x18\x05
\x01
(
\x05
:
\x01\x31\x12\x18\n\t
transpose
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\"
1
\n\x0e
InputParameter
\x12\x1f\n\x05
shape
\x18\x01
\x03
(
\x0b\x32\x10
.caffe.BlobShape
\"
D
\n\x0c
LogParameter
\x12\x10\n\x04\x62\x61
se
\x18\x01
\x01
(
\x02
:
\x02
-1
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
shift
\x18\x03
\x01
(
\x02
:
\x01\x30\"\xb8\x02\n\x0c
LRNParameter
\x12\x15\n\n
local_size
\x18\x01
\x01
(
\r
:
\x01\x35\x12\x10\n\x05\x61
lpha
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x12\n\x04\x62\x65
ta
\x18\x03
\x01
(
\x02
:
\x04\x30
.75
\x12\x44\n\x0b
norm_region
\x18\x04
\x01
(
\x0e\x32\x1e
.caffe.LRNParameter.NormRegion:
\x0f\x41\x43
ROSS_CHANNELS
\x12\x0c\n\x01
k
\x18\x05
\x01
(
\x02
:
\x01\x31\x12\x33\n\x06\x65
ngine
\x18\x06
\x01
(
\x0e\x32\x1a
.caffe.LRNParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
5
\n\n
NormRegion
\x12\x13\n\x0f\x41\x43
ROSS_CHANNELS
\x10\x00\x12\x12\n\x0e
WITHIN_CHANNEL
\x10\x01\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"\xbd\x01\n\x13
MemoryDataParameter
\x12\x12\n\n
batch_size
\x18\x01
\x01
(
\r\x12\x10\n\x08\x63
hannels
\x18\x02
\x01
(
\r\x12\x0e\n\x06
height
\x18\x03
\x01
(
\r\x12\r\n\x05
width
\x18\x04
\x01
(
\r\x12
;
\n\x05\x64
type
\x18\x05
\x01
(
\x0e\x32
#.caffe.MemoryDataParameter.DataType:
\x07\x46
LOAT32
\"
$
\n\x08\x44\x61
taType
\x12\x0b\n\x07\x46
LOAT32
\x10\x00\x12\x0b\n\x07\x46
LOAT16
\x10\x01\"
e
\n\x0c
MVNParameter
\x12
\n\x12
normalize_variance
\x18\x01
\x01
(
\x08
:
\x04
true
\x12\x1e\n\x0f\x61\x63
ross_channels
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x13\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x06\x31\x65
-009
\"
5
\n\x12
ParameterParameter
\x12\x1f\n\x05
shape
\x18\x01
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\"\xa2\x03\n\x10
PoolingParameter
\x12\x35\n\x04
pool
\x18\x01
\x01
(
\x0e\x32\"
.caffe.PoolingParameter.PoolMethod:
\x03
MAX
\x12\x0e\n\x03
pad
\x18\x04
\x01
(
\r
:
\x01\x30\x12\x10\n\x05
pad_h
\x18\t
\x01
(
\r
:
\x01\x30\x12\x10\n\x05
pad_w
\x18\n
\x01
(
\r
:
\x01\x30\x12\x13\n\x0b
kernel_size
\x18\x02
\x01
(
\r\x12\x10\n\x08
kernel_h
\x18\x05
\x01
(
\r\x12\x10\n\x08
kernel_w
\x18\x06
\x01
(
\r\x12\x11\n\x06
stride
\x18\x03
\x01
(
\r
:
\x01\x31\x12\x10\n\x08
stride_h
\x18\x07
\x01
(
\r\x12\x10\n\x08
stride_w
\x18\x08
\x01
(
\r\x12\x37\n\x06\x65
ngine
\x18\x0b
\x01
(
\x0e\x32\x1e
.caffe.PoolingParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\x12\x1d\n\x0e
global_pooling
\x18\x0c
\x01
(
\x08
:
\x05\x66\x61
lse
\"
.
\n\n
PoolMethod
\x12\x07\n\x03
MAX
\x10\x00\x12\x07\n\x03\x41
VE
\x10\x01\x12\x0e\n\n
STOCHASTIC
\x10\x02\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
Y
\n\x13
ROIPoolingParameter
\x12\x13\n\x08
pooled_h
\x18\x01
\x01
(
\r
:
\x01\x30\x12\x13\n\x08
pooled_w
\x18\x02
\x01
(
\r
:
\x01\x30\x12\x18\n\r
spatial_scale
\x18\x03
\x01
(
\x02
:
\x01\x31\"
F
\n\x0e
PowerParameter
\x12\x10\n\x05
power
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
shift
\x18\x03
\x01
(
\x02
:
\x01\x30\"
g
\n\x0f
PythonParameter
\x12\x0e\n\x06
module
\x18\x01
\x01
(
\t\x12\r\n\x05
layer
\x18\x02
\x01
(
\t\x12\x13\n\t
param_str
\x18\x03
\x01
(
\t
:
\x00\x12
\n\x11
share_in_parallel
\x18\x04
\x01
(
\x08
:
\x05\x66\x61
lse
\"\xad\x01\n\x12
ReductionParameter
\x12
=
\n\t
operation
\x18\x01
\x01
(
\x0e\x32
%
.caffe.ReductionParameter.ReductionOp:
\x03
SUM
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\x10\n\x05\x63
oeff
\x18\x03
\x01
(
\x02
:
\x01\x31\"
5
\n\x0b
ReductionOp
\x12\x07\n\x03
SUM
\x10\x01\x12\x08\n\x04\x41
SUM
\x10\x02\x12\t\n\x05
SUMSQ
\x10\x03\x12\x08\n\x04
MEAN
\x10\x04\"\x8d\x01\n\r
ReLUParameter
\x12\x19\n\x0e
negative_slope
\x18\x01
\x01
(
\x02
:
\x01\x30\x12\x34\n\x06\x65
ngine
\x18\x02
\x01
(
\x0e\x32\x1b
.caffe.ReLUParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
Z
\n\x10
ReshapeParameter
\x12\x1f\n\x05
shape
\x18\x01
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\x14\n\x08
num_axes
\x18\x03
\x01
(
\x05
:
\x02
-1
\"\xa5\x01\n\x0e
ScaleParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x13\n\x08
num_axes
\x18\x02
\x01
(
\x05
:
\x01\x31\x12
&
\n\x06\x66
iller
\x18\x03
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x18\n\t
bias_term
\x18\x04
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
+
\n\x0b\x62
ias_filler
\x18\x05
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\"
x
\n\x10
SigmoidParameter
\x12\x37\n\x06\x65
ngine
\x18\x01
\x01
(
\x0e\x32\x1e
.caffe.SigmoidParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
L
\n\x0e
SliceParameter
\x12\x0f\n\x04\x61
xis
\x18\x03
\x01
(
\x05
:
\x01\x31\x12\x13\n\x0b
slice_point
\x18\x02
\x03
(
\r\x12\x14\n\t
slice_dim
\x18\x01
\x01
(
\r
:
\x01\x31\"\x89\x01\n\x10
SoftmaxParameter
\x12\x37\n\x06\x65
ngine
\x18\x01
\x01
(
\x0e\x32\x1e
.caffe.SoftmaxParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x31\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
r
\n\r
TanHParameter
\x12\x34\n\x06\x65
ngine
\x18\x01
\x01
(
\x0e\x32\x1b
.caffe.TanHParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
T
\n\r
TileParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\r\n\x05
tiles
\x18\x02
\x01
(
\x05\x12
#
\n\t
multiples
\x18\x03
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\"
*
\n\x12
ThresholdParameter
\x12\x14\n\t
threshold
\x18\x01
\x01
(
\x02
:
\x01\x30\"\xc1\x02\n\x13
WindowDataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x11\n\t
mean_file
\x18\x03
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x04
\x01
(
\r\x12\x14\n\t
crop_size
\x18\x05
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x19\n\x0c\x66
g_threshold
\x18\x07
\x01
(
\x02
:
\x03\x30
.5
\x12\x19\n\x0c\x62
g_threshold
\x18\x08
\x01
(
\x02
:
\x03\x30
.5
\x12\x19\n\x0b\x66
g_fraction
\x18\t
\x01
(
\x02
:
\x04\x30
.25
\x12\x16\n\x0b\x63
ontext_pad
\x18\n
\x01
(
\r
:
\x01\x30\x12\x17\n\t
crop_mode
\x18\x0b
\x01
(
\t
:
\x04
warp
\x12\x1b\n\x0c\x63\x61\x63
he_images
\x18\x0c
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\x0b
root_folder
\x18\r
\x01
(
\t
:
\x00\"\xeb\x01\n\x0c
SPPParameter
\x12\x16\n\x0e
pyramid_height
\x18\x01
\x01
(
\r\x12\x31\n\x04
pool
\x18\x02
\x01
(
\x0e\x32\x1e
.caffe.SPPParameter.PoolMethod:
\x03
MAX
\x12\x33\n\x06\x65
ngine
\x18\x06
\x01
(
\x0e\x32\x1a
.caffe.SPPParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
.
\n\n
PoolMethod
\x12\x07\n\x03
MAX
\x10\x00\x12\x07\n\x03\x41
VE
\x10\x01\x12\x0e\n\n
STOCHASTIC
\x10\x02\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"\xe0\x13\n\x10
V1LayerParameter
\x12\x0e\n\x06\x62
ottom
\x18\x02
\x03
(
\t\x12\x0b\n\x03
top
\x18\x03
\x03
(
\t\x12\x0c\n\x04
name
\x18\x04
\x01
(
\t\x12
$
\n\x07
include
\x18
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12
$
\n\x07\x65
xclude
\x18
!
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12
/
\n\x04
type
\x18\x05
\x01
(
\x0e\x32
!.caffe.V1LayerParameter.LayerType
\x12\x1f\n\x05\x62
lobs
\x18\x06
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x0e\n\x05
param
\x18\xe9\x07
\x03
(
\t\x12
>
\n\x0f\x62
lob_share_mode
\x18\xea\x07
\x03
(
\x0e\x32
$.caffe.V1LayerParameter.DimCheckMode
\x12\x10\n\x08\x62
lobs_lr
\x18\x07
\x03
(
\x02\x12\x14\n\x0c
weight_decay
\x18\x08
\x03
(
\x02\x12\x13\n\x0b
loss_weight
\x18
#
\x03
(
\x02\x12\x30\n\x0e\x61\x63\x63
uracy_param
\x18\x1b
\x01
(
\x0b\x32\x18
.caffe.AccuracyParameter
\x12
,
\n\x0c\x61
rgmax_param
\x18\x17
\x01
(
\x0b\x32\x16
.caffe.ArgMaxParameter
\x12
,
\n\x0c\x63
oncat_param
\x18\t
\x01
(
\x0b\x32\x16
.caffe.ConcatParameter
\x12
?
\n\x16\x63
ontrastive_loss_param
\x18
(
\x01
(
\x0b\x32\x1f
.caffe.ContrastiveLossParameter
\x12\x36\n\x11\x63
onvolution_param
\x18\n
\x01
(
\x0b\x32\x1b
.caffe.ConvolutionParameter
\x12
(
\n\n
data_param
\x18\x0b
\x01
(
\x0b\x32\x14
.caffe.DataParameter
\x12
.
\n\r
dropout_param
\x18\x0c
\x01
(
\x0b\x32\x17
.caffe.DropoutParameter
\x12\x33\n\x10\x64
ummy_data_param
\x18\x1a
\x01
(
\x0b\x32\x19
.caffe.DummyDataParameter
\x12
.
\n\r
eltwise_param
\x18\x18
\x01
(
\x0b\x32\x17
.caffe.EltwiseParameter
\x12
&
\n\t
exp_param
\x18
)
\x01
(
\x0b\x32\x13
.caffe.ExpParameter
\x12\x31\n\x0f
hdf5_data_param
\x18\r
\x01
(
\x0b\x32\x18
.caffe.HDF5DataParameter
\x12\x35\n\x11
hdf5_output_param
\x18\x0e
\x01
(
\x0b\x32\x1a
.caffe.HDF5OutputParameter
\x12\x33\n\x10
hinge_loss_param
\x18\x1d
\x01
(
\x0b\x32\x19
.caffe.HingeLossParameter
\x12\x33\n\x10
image_data_param
\x18\x0f
\x01
(
\x0b\x32\x19
.caffe.ImageDataParameter
\x12\x39\n\x13
infogain_loss_param
\x18\x10
\x01
(
\x0b\x32\x1c
.caffe.InfogainLossParameter
\x12\x39\n\x13
inner_product_param
\x18\x11
\x01
(
\x0b\x32\x1c
.caffe.InnerProductParameter
\x12
&
\n\t
lrn_param
\x18\x12
\x01
(
\x0b\x32\x13
.caffe.LRNParameter
\x12\x35\n\x11
memory_data_param
\x18\x16
\x01
(
\x0b\x32\x1a
.caffe.MemoryDataParameter
\x12
&
\n\t
mvn_param
\x18\"
\x01
(
\x0b\x32\x13
.caffe.MVNParameter
\x12
.
\n\r
pooling_param
\x18\x13
\x01
(
\x0b\x32\x17
.caffe.PoolingParameter
\x12
*
\n\x0b
power_param
\x18\x15
\x01
(
\x0b\x32\x15
.caffe.PowerParameter
\x12
(
\n\n
relu_param
\x18\x1e
\x01
(
\x0b\x32\x14
.caffe.ReLUParameter
\x12
.
\n\r
sigmoid_param
\x18
&
\x01
(
\x0b\x32\x17
.caffe.SigmoidParameter
\x12
.
\n\r
softmax_param
\x18\'
\x01
(
\x0b\x32\x17
.caffe.SoftmaxParameter
\x12
*
\n\x0b
slice_param
\x18\x1f
\x01
(
\x0b\x32\x15
.caffe.SliceParameter
\x12
(
\n\n
tanh_param
\x18
%
\x01
(
\x0b\x32\x14
.caffe.TanHParameter
\x12\x32\n\x0f
threshold_param
\x18\x19
\x01
(
\x0b\x32\x19
.caffe.ThresholdParameter
\x12\x35\n\x11
window_data_param
\x18\x14
\x01
(
\x0b\x32\x1a
.caffe.WindowDataParameter
\x12\x37\n\x0f
transform_param
\x18
$
\x01
(
\x0b\x32\x1e
.caffe.TransformationParameter
\x12
(
\n\n
loss_param
\x18
*
\x01
(
\x0b\x32\x14
.caffe.LossParameter
\x12
&
\n\x05
layer
\x18\x01
\x01
(
\x0b\x32\x17
.caffe.V0LayerParameter
\"\xd8\x04\n\t
LayerType
\x12\x08\n\x04
NONE
\x10\x00\x12\n\n\x06\x41\x42
SVAL
\x10
#
\x12\x0c\n\x08\x41\x43\x43
URACY
\x10\x01\x12\n\n\x06\x41
RGMAX
\x10\x1e\x12\x08\n\x04\x42
NLL
\x10\x02\x12\n\n\x06\x43
ONCAT
\x10\x03\x12\x14\n\x10\x43
ONTRASTIVE_LOSS
\x10
%
\x12\x0f\n\x0b\x43
ONVOLUTION
\x10\x04\x12\x08\n\x04\x44\x41
TA
\x10\x05\x12\x11\n\r
DECONVOLUTION
\x10\'\x12\x0b\n\x07\x44
ROPOUT
\x10\x06\x12\x0e\n\n
DUMMY_DATA
\x10
\x12\x12\n\x0e\x45
UCLIDEAN_LOSS
\x10\x07\x12\x0b\n\x07\x45
LTWISE
\x10\x19\x12\x07\n\x03\x45
XP
\x10
&
\x12\x0b\n\x07\x46
LATTEN
\x10\x08\x12\r\n\t
HDF5_DATA
\x10\t\x12\x0f\n\x0b
HDF5_OUTPUT
\x10\n\x12\x0e\n\n
HINGE_LOSS
\x10\x1c\x12\n\n\x06
IM2COL
\x10\x0b\x12\x0e\n\n
IMAGE_DATA
\x10\x0c\x12\x11\n\r
INFOGAIN_LOSS
\x10\r\x12\x11\n\r
INNER_PRODUCT
\x10\x0e\x12\x07\n\x03
LRN
\x10\x0f\x12\x0f\n\x0b
MEMORY_DATA
\x10\x1d\x12\x1d\n\x19
MULTINOMIAL_LOGISTIC_LOSS
\x10\x10\x12\x07\n\x03
MVN
\x10\"\x12\x0b\n\x07
POOLING
\x10\x11\x12\t\n\x05
POWER
\x10\x1a\x12\x08\n\x04
RELU
\x10\x12\x12\x0b\n\x07
SIGMOID
\x10\x13\x12\x1e\n\x1a
SIGMOID_CROSS_ENTROPY_LOSS
\x10\x1b\x12\x0b\n\x07
SILENCE
\x10
$
\x12\x0b\n\x07
SOFTMAX
\x10\x14\x12\x10\n\x0c
SOFTMAX_LOSS
\x10\x15\x12\t\n\x05
SPLIT
\x10\x16\x12\t\n\x05
SLICE
\x10
!
\x12\x08\n\x04
TANH
\x10\x17\x12\x0f\n\x0b
WINDOW_DATA
\x10\x18\x12\r\n\t
THRESHOLD
\x10\x1f\"
*
\n\x0c\x44
imCheckMode
\x12\n\n\x06
STRICT
\x10\x00\x12\x0e\n\n
PERMISSIVE
\x10\x01\"\xfd\x07\n\x10
V0LayerParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\x0c\n\x04
type
\x18\x02
\x01
(
\t\x12\x12\n\n
num_output
\x18\x03
\x01
(
\r\x12\x16\n\x08\x62
iasterm
\x18\x04
\x01
(
\x08
:
\x04
true
\x12
-
\n\r
weight_filler
\x18\x05
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x06
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x0e\n\x03
pad
\x18\x07
\x01
(
\r
:
\x01\x30\x12\x12\n\n
kernelsize
\x18\x08
\x01
(
\r\x12\x10\n\x05
group
\x18\t
\x01
(
\r
:
\x01\x31\x12\x11\n\x06
stride
\x18\n
\x01
(
\r
:
\x01\x31\x12\x35\n\x04
pool
\x18\x0b
\x01
(
\x0e\x32\"
.caffe.V0LayerParameter.PoolMethod:
\x03
MAX
\x12\x1a\n\r
dropout_ratio
\x18\x0c
\x01
(
\x02
:
\x03\x30
.5
\x12\x15\n\n
local_size
\x18\r
\x01
(
\r
:
\x01\x35\x12\x10\n\x05\x61
lpha
\x18\x0e
\x01
(
\x02
:
\x01\x31\x12\x12\n\x04\x62\x65
ta
\x18\x0f
\x01
(
\x02
:
\x04\x30
.75
\x12\x0c\n\x01
k
\x18\x16
\x01
(
\x02
:
\x01\x31\x12\x0e\n\x06
source
\x18\x10
\x01
(
\t\x12\x10\n\x05
scale
\x18\x11
\x01
(
\x02
:
\x01\x31\x12\x10\n\x08
meanfile
\x18\x12
\x01
(
\t\x12\x11\n\t
batchsize
\x18\x13
\x01
(
\r\x12\x13\n\x08\x63
ropsize
\x18\x14
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x15
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1f\n\x05\x62
lobs
\x18\x32
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x10\n\x08\x62
lobs_lr
\x18\x33
\x03
(
\x02\x12\x14\n\x0c
weight_decay
\x18\x34
\x03
(
\x02\x12\x14\n\t
rand_skip
\x18\x35
\x01
(
\r
:
\x01\x30\x12\x1d\n\x10\x64\x65
t_fg_threshold
\x18\x36
\x01
(
\x02
:
\x03\x30
.5
\x12\x1d\n\x10\x64\x65
t_bg_threshold
\x18\x37
\x01
(
\x02
:
\x03\x30
.5
\x12\x1d\n\x0f\x64\x65
t_fg_fraction
\x18\x38
\x01
(
\x02
:
\x04\x30
.25
\x12\x1a\n\x0f\x64\x65
t_context_pad
\x18
:
\x01
(
\r
:
\x01\x30\x12\x1b\n\r
det_crop_mode
\x18
;
\x01
(
\t
:
\x04
warp
\x12\x12\n\x07
new_num
\x18
<
\x01
(
\x05
:
\x01\x30\x12\x17\n\x0c
new_channels
\x18
=
\x01
(
\x05
:
\x01\x30\x12\x15\n\n
new_height
\x18
>
\x01
(
\x05
:
\x01\x30\x12\x14\n\t
new_width
\x18
?
\x01
(
\x05
:
\x01\x30\x12\x1d\n\x0e
shuffle_images
\x18
@
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\n
concat_dim
\x18\x41
\x01
(
\r
:
\x01\x31\x12\x36\n\x11
hdf5_output_param
\x18\xe9\x07
\x01
(
\x0b\x32\x1a
.caffe.HDF5OutputParameter
\"
.
\n\n
PoolMethod
\x12\x07\n\x03
MAX
\x10\x00\x12\x07\n\x03\x41
VE
\x10\x01\x12\x0e\n\n
STOCHASTIC
\x10\x02\"
W
\n\x0e
PReLUParameter
\x12
&
\n\x06\x66
iller
\x18\x01
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x1d\n\x0e\x63
hannel_shared
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\"\x87\x01\n\x11
ImagenetParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x02
\x01
(
\r\x12\x13\n\x08
prefetch
\x18\x04
\x01
(
\r
:
\x01\x34\x12\x10\n\x08
imageset
\x18\x05
\x01
(
\t\x12\x16\n\x07
shuffle
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x0f\n\x04
step
\x18\x07
\x01
(
\r
:
\x01\x31\"
)
\n\x15
SmoothL1LossParameter
\x12\x10\n\x05
sigma
\x18\x01
\x01
(
\x02
:
\x01\x31\"
H
\n\x0c
MPIParameter
\x12\x0f\n\x04
root
\x18\x01
\x01
(
\r
:
\x01\x30\x12\x12\n\x07\x63
omm_id
\x18\x02
\x01
(
\x04
:
\x01\x30\x12\x13\n\x08
group_id
\x18\x03
\x01
(
\x04
:
\x01\x30\"
!
\n\x10
PermuteParameter
\x12\r\n\x05
order
\x18\x01
\x03
(
\r\"\x93\x01\n\x12
NormalizeParameter
\x12\x1c\n\x0e\x61\x63
ross_spatial
\x18\x01
\x01
(
\x08
:
\x04
true
\x12
,
\n\x0c
scale_filler
\x18\x02
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x1c\n\x0e\x63
hannel_shared
\x18\x03
\x01
(
\x08
:
\x04
true
\x12\x13\n\x03\x65
ps
\x18\x04
\x01
(
\x02
:
\x06\x31\x65
-010
\"
_
\n\x11
ParallelParameter
\x12\x16\n\x07
shuffle
\x18\x01
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x18\n\t
node_step
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x18\n\t
partition
\x18\x03
\x01
(
\x08
:
\x05\x66\x61
lse
\"
T
\n\x11
NNResizeParameter
\x12\x1f\n\x05
shape
\x18\x01
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x0e\n\x02\x66
x
\x18\x02
\x01
(
\x02
:
\x02
-1
\x12\x0e\n\x02\x66
y
\x18\x03
\x01
(
\x02
:
\x02
-1
\"\'\n\x13\x45
xpandDimsParameter
\x12\x10\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x02
-1
\"\xc8\x01\n\x11
ProposalParameter
\x12\x17\n\x0b\x66\x65\x61
t_stride
\x18\x01
\x01
(
\r
:
\x02\x31\x36\x12\x15\n\t
base_size
\x18\x02
\x01
(
\r
:
\x02\x31\x36\x12\x14\n\x08
min_size
\x18\x03
\x01
(
\r
:
\x02\x31\x36\x12\r\n\x05
ratio
\x18\x04
\x03
(
\x02\x12\r\n\x05
scale
\x18\x05
\x03
(
\x02\x12\x1a\n\x0c
pre_nms_topn
\x18\x06
\x01
(
\r
:
\x04\x36\x30\x30\x30\x12\x1a\n\r
post_nms_topn
\x18\x07
\x01
(
\r
:
\x03\x33\x30\x30\x12\x17\n\n
nms_thresh
\x18\x08
\x01
(
\x02
:
\x03\x30
.7
\"\xa2\x01\n\x14\x42\x61
tchRenormParameter
\x12\x18\n\x10
use_global_stats
\x18\x01
\x01
(
\x08\x12
$
\n\x17
moving_average_fraction
\x18\x02
\x01
(
\x02
:
\x03\x30
.9
\x12\x12\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x05\x30
.001
\x12\x10\n\x05
r_max
\x18\x04
\x01
(
\x02
:
\x01\x33\x12\x10\n\x05\x64
_max
\x18\x05
\x01
(
\x02
:
\x01\x35\x12\x12\n\x07
t_delta
\x18\x06
\x01
(
\x02
:
\x01\x31\"
?
\n\x14\x44\x65
nseConcatParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x16\n\x0b
growth_rate
\x18\x02
\x01
(
\x05
:
\x01\x30\"
q
\n\x12\x46
ocalLossParameter
\x12\x10\n\x05\x61
lpha
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x13\n\x05
gamma
\x18\x02
\x01
(
\x02
:
\x04\x30
.25
\x12\x13\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x06\x31\x65
-010
\x12\x1f\n\x11
use_pseudo_metric
\x18\x04
\x01
(
\x08
:
\x04
true
*
\x1c\n\x05
Phase
\x12\t\n\x05
TRAIN
\x10\x00\x12\x08\n\x04
TEST
\x10\x01
'
)
serialized_pb
=
_b
(
'
\n\x0b\x63\x61\x66\x66\x65
.proto
\x12\x05\x63\x61\x66\x66\x65\"\x1c\n\t
BlobShape
\x12\x0f\n\x03\x64
im
\x18\x01
\x03
(
\x03\x42\x02\x10\x01\"\xcc\x01\n\t
BlobProto
\x12\x1f\n\x05
shape
\x18\x07
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x10\n\x04\x64\x61
ta
\x18\x05
\x03
(
\x02\x42\x02\x10\x01\x12\x10\n\x04\x64
iff
\x18\x06
\x03
(
\x02\x42\x02\x10\x01\x12\x17\n\x0b\x64
ouble_data
\x18\x08
\x03
(
\x01\x42\x02\x10\x01\x12\x17\n\x0b\x64
ouble_diff
\x18\t
\x03
(
\x01\x42\x02\x10\x01\x12\x0e\n\x03
num
\x18\x01
\x01
(
\x05
:
\x01\x30\x12\x13\n\x08\x63
hannels
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\x11\n\x06
height
\x18\x03
\x01
(
\x05
:
\x01\x30\x12\x10\n\x05
width
\x18\x04
\x01
(
\x05
:
\x01\x30\"
2
\n\x0f\x42
lobProtoVector
\x12\x1f\n\x05\x62
lobs
\x18\x01
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\"\x81\x01\n\x05\x44\x61
tum
\x12\x10\n\x08\x63
hannels
\x18\x01
\x01
(
\x05\x12\x0e\n\x06
height
\x18\x02
\x01
(
\x05\x12\r\n\x05
width
\x18\x03
\x01
(
\x05\x12\x0c\n\x04\x64\x61
ta
\x18\x04
\x01
(
\x0c\x12\r\n\x05
label
\x18\x05
\x01
(
\x05\x12\x12\n\n
float_data
\x18\x06
\x03
(
\x02\x12\x16\n\x07\x65
ncoded
\x18\x07
\x01
(
\x08
:
\x05\x66\x61
lse
\"\x8a\x02\n\x0f\x46
illerParameter
\x12\x16\n\x04
type
\x18\x01
\x01
(
\t
:
\x08\x63
onstant
\x12\x10\n\x05
value
\x18\x02
\x01
(
\x02
:
\x01\x30\x12\x0e\n\x03
min
\x18\x03
\x01
(
\x02
:
\x01\x30\x12\x0e\n\x03
max
\x18\x04
\x01
(
\x02
:
\x01\x31\x12\x0f\n\x04
mean
\x18\x05
\x01
(
\x02
:
\x01\x30\x12\x0e\n\x03
std
\x18\x06
\x01
(
\x02
:
\x01\x31\x12\x12\n\x06
sparse
\x18\x07
\x01
(
\x05
:
\x02
-1
\x12\x42\n\r
variance_norm
\x18\x08
\x01
(
\x0e\x32
#.caffe.FillerParameter.VarianceNorm:
\x06\x46\x41
N_IN
\"
4
\n\x0c
VarianceNorm
\x12\n\n\x06\x46\x41
N_IN
\x10\x00\x12\x0b\n\x07\x46\x41
N_OUT
\x10\x01\x12\x0b\n\x07\x41
VERAGE
\x10\x02\"\x8e\x02\n\x0c
NetParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\r\n\x05
input
\x18\x03
\x03
(
\t\x12
%
\n\x0b
input_shape
\x18\x08
\x03
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x11\n\t
input_dim
\x18\x04
\x03
(
\x05\x12\x1d\n\x0e\x66
orce_backward
\x18\x05
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1e\n\x05
state
\x18\x06
\x01
(
\x0b\x32\x0f
.caffe.NetState
\x12\x19\n\n
debug_info
\x18\x07
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
$
\n\x05
layer
\x18\x64
\x03
(
\x0b\x32\x15
.caffe.LayerParameter
\x12\'\n\x06
layers
\x18\x02
\x03
(
\x0b\x32\x17
.caffe.V1LayerParameter
\"\xc9\n\n\x0f
SolverParameter
\x12\x0b\n\x03
net
\x18\x18
\x01
(
\t\x12
&
\n\t
net_param
\x18\x19
\x01
(
\x0b\x32\x13
.caffe.NetParameter
\x12\x11\n\t
train_net
\x18\x01
\x01
(
\t\x12\x10\n\x08
test_net
\x18\x02
\x03
(
\t\x12
,
\n\x0f
train_net_param
\x18\x15
\x01
(
\x0b\x32\x13
.caffe.NetParameter
\x12
+
\n\x0e
test_net_param
\x18\x16
\x03
(
\x0b\x32\x13
.caffe.NetParameter
\x12
$
\n\x0b
train_state
\x18\x1a
\x01
(
\x0b\x32\x0f
.caffe.NetState
\x12
#
\n\n
test_state
\x18\x1b
\x03
(
\x0b\x32\x0f
.caffe.NetState
\x12\x11\n\t
test_iter
\x18\x03
\x03
(
\x05\x12\x18\n\r
test_interval
\x18\x04
\x01
(
\x05
:
\x01\x30\x12
\n\x11
test_compute_loss
\x18\x13
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
!
\n\x13
test_initialization
\x18
\x01
(
\x08
:
\x04
true
\x12\x0f\n\x07\x62\x61
se_lr
\x18\x05
\x01
(
\x02\x12\x10\n\x08
stage_lr
\x18\x32
\x03
(
\x02\x12\x12\n\n
stage_iter
\x18\x33
\x03
(
\x05\x12\x0f\n\x07\x64
isplay
\x18\x06
\x01
(
\x05\x12\x17\n\x0c\x61
verage_loss
\x18
!
\x01
(
\x05
:
\x01\x31\x12\x10\n\x08
max_iter
\x18\x07
\x01
(
\x05\x12\x14\n\t
iter_size
\x18
$
\x01
(
\x05
:
\x01\x31\x12\x11\n\t
lr_policy
\x18\x08
\x01
(
\t\x12\r\n\x05
gamma
\x18\t
\x01
(
\x02\x12\r\n\x05
power
\x18\n
\x01
(
\x02\x12\x10\n\x08
momentum
\x18\x0b
\x01
(
\x02\x12\x14\n\x0c
weight_decay
\x18\x0c
\x01
(
\x02\x12\x1f\n\x13
regularization_type
\x18\x1d
\x01
(
\t
:
\x02
L2
\x12\x10\n\x08
stepsize
\x18\r
\x01
(
\x05\x12\x11\n\t
stepvalue
\x18\"
\x03
(
\x05\x12\x1a\n\x0e\x63
lip_gradients
\x18
#
\x01
(
\x02
:
\x02
-1
\x12\x13\n\x08
snapshot
\x18\x0e
\x01
(
\x05
:
\x01\x30\x12\x17\n\x0f
snapshot_prefix
\x18\x0f
\x01
(
\t\x12\x1c\n\r
snapshot_diff
\x18\x10
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
K
\n\x0f
snapshot_format
\x18
%
\x01
(
\x0e\x32
%
.caffe.SolverParameter.SnapshotFormat:
\x0b\x42
INARYPROTO
\x12
;
\n\x0b
solver_mode
\x18\x11
\x01
(
\x0e\x32
!.caffe.SolverParameter.SolverMode:
\x03
GPU
\x12\x14\n\t
device_id
\x18\x12
\x01
(
\x05
:
\x01\x30\x12\x17\n\x0b
random_seed
\x18\x14
\x01
(
\x03
:
\x02
-1
\x12\x11\n\x04
type
\x18
(
\x01
(
\t
:
\x03
SGD
\x12\x15\n\x05\x64\x65
lta
\x18\x1f
\x01
(
\x02
:
\x06\x31\x65
-008
\x12\x18\n\t
momentum2
\x18\'
\x01
(
\x02
:
\x05\x30
.999
\x12\x17\n\t
rms_decay
\x18
&
\x01
(
\x02
:
\x04\x30
.99
\x12\x19\n\n
debug_info
\x18\x17
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\"\n\x14
snapshot_after_train
\x18\x1c
\x01
(
\x08
:
\x04
true
\x12
;
\n\x0b
solver_type
\x18\x1e
\x01
(
\x0e\x32
!.caffe.SolverParameter.SolverType:
\x03
SGD
\"
+
\n\x0e
SnapshotFormat
\x12\x08\n\x04
HDF5
\x10\x00\x12\x0f\n\x0b\x42
INARYPROTO
\x10\x01\"\x1e\n\n
SolverMode
\x12\x07\n\x03\x43
PU
\x10\x00\x12\x07\n\x03
GPU
\x10\x01\"
U
\n\n
SolverType
\x12\x07\n\x03
SGD
\x10\x00\x12\x0c\n\x08
NESTEROV
\x10\x01\x12\x0b\n\x07\x41\x44\x41
GRAD
\x10\x02\x12\x0b\n\x07
RMSPROP
\x10\x03\x12\x0c\n\x08\x41\x44\x41\x44\x45
LTA
\x10\x04\x12\x08\n\x04\x41\x44\x41
M
\x10\x05\"
l
\n\x0b
SolverState
\x12\x0c\n\x04
iter
\x18\x01
\x01
(
\x05\x12\x13\n\x0b
learned_net
\x18\x02
\x01
(
\t\x12
!
\n\x07
history
\x18\x03
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x17\n\x0c\x63
urrent_step
\x18\x04
\x01
(
\x05
:
\x01\x30\"
N
\n\x08
NetState
\x12
!
\n\x05
phase
\x18\x01
\x01
(
\x0e\x32\x0c
.caffe.Phase:
\x04
TEST
\x12\x10\n\x05
level
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\r\n\x05
stage
\x18\x03
\x03
(
\t\"\x85\x01\n\x0c
NetStateRule
\x12\x1b\n\x05
phase
\x18\x01
\x01
(
\x0e\x32\x0c
.caffe.Phase
\x12\x11\n\t
min_level
\x18\x02
\x01
(
\x05\x12\x11\n\t
max_level
\x18\x03
\x01
(
\x05\x12\r\n\x05
stage
\x18\x04
\x03
(
\t\x12\x11\n\t
not_stage
\x18\x05
\x03
(
\t\x12\x10\n\x08
mpi_rank
\x18\x06
\x03
(
\r\"\xa3\x01\n\t
ParamSpec
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\x31\n\n
share_mode
\x18\x02
\x01
(
\x0e\x32\x1d
.caffe.ParamSpec.DimCheckMode
\x12\x12\n\x07
lr_mult
\x18\x03
\x01
(
\x02
:
\x01\x31\x12\x15\n\n
decay_mult
\x18\x04
\x01
(
\x02
:
\x01\x31\"
*
\n\x0c\x44
imCheckMode
\x12\n\n\x06
STRICT
\x10\x00\x12\x0e\n\n
PERMISSIVE
\x10\x01\"\x9d\x19\n\x0e
LayerParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\x0c\n\x04
type
\x18\x02
\x01
(
\t\x12\x0e\n\x06\x62
ottom
\x18\x03
\x03
(
\t\x12\x0b\n\x03
top
\x18\x04
\x03
(
\t\x12\x1c\n\x0c
mirrow_stage
\x18\xa2\x01
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1b\n\x05
phase
\x18\n
\x01
(
\x0e\x32\x0c
.caffe.Phase
\x12\x13\n\x0b
loss_weight
\x18\x05
\x03
(
\x02\x12\x1f\n\x05
param
\x18\x06
\x03
(
\x0b\x32\x10
.caffe.ParamSpec
\x12\x1f\n\x05\x62
lobs
\x18\x07
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x16\n\x0e
propagate_down
\x18\x0b
\x03
(
\x08\x12
$
\n\x07
include
\x18\x08
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12
$
\n\x07\x65
xclude
\x18\t
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12\x37\n\x0f
transform_param
\x18\x64
\x01
(
\x0b\x32\x1e
.caffe.TransformationParameter
\x12
(
\n\n
loss_param
\x18\x65
\x01
(
\x0b\x32\x14
.caffe.LossParameter
\x12\x30\n\x0e\x61\x63\x63
uracy_param
\x18\x66
\x01
(
\x0b\x32\x18
.caffe.AccuracyParameter
\x12
,
\n\x0c\x61
rgmax_param
\x18
g
\x01
(
\x0b\x32\x16
.caffe.ArgMaxParameter
\x12\x34\n\x10\x62\x61
tch_norm_param
\x18\x8b\x01
\x01
(
\x0b\x32\x19
.caffe.BatchNormParameter
\x12
)
\n\n
bias_param
\x18\x8d\x01
\x01
(
\x0b\x32\x14
.caffe.BiasParameter
\x12
,
\n\x0c\x63
oncat_param
\x18
h
\x01
(
\x0b\x32\x16
.caffe.ConcatParameter
\x12
?
\n\x16\x63
ontrastive_loss_param
\x18
i
\x01
(
\x0b\x32\x1f
.caffe.ContrastiveLossParameter
\x12\x36\n\x11\x63
onvolution_param
\x18
j
\x01
(
\x0b\x32\x1b
.caffe.ConvolutionParameter
\x12
)
\n\n
crop_param
\x18\x90\x01
\x01
(
\x0b\x32\x14
.caffe.CropParameter
\x12
(
\n\n
data_param
\x18
k
\x01
(
\x0b\x32\x14
.caffe.DataParameter
\x12
.
\n\r
dropout_param
\x18
l
\x01
(
\x0b\x32\x17
.caffe.DropoutParameter
\x12\x33\n\x10\x64
ummy_data_param
\x18
m
\x01
(
\x0b\x32\x19
.caffe.DummyDataParameter
\x12
.
\n\r
eltwise_param
\x18
n
\x01
(
\x0b\x32\x17
.caffe.EltwiseParameter
\x12\'\n\t
elu_param
\x18\x8c\x01
\x01
(
\x0b\x32\x13
.caffe.ELUParameter
\x12
+
\n\x0b\x65
mbed_param
\x18\x89\x01
\x01
(
\x0b\x32\x15
.caffe.EmbedParameter
\x12
&
\n\t
exp_param
\x18
o
\x01
(
\x0b\x32\x13
.caffe.ExpParameter
\x12
/
\n\r
flatten_param
\x18\x87\x01
\x01
(
\x0b\x32\x17
.caffe.FlattenParameter
\x12\x31\n\x0f
hdf5_data_param
\x18
p
\x01
(
\x0b\x32\x18
.caffe.HDF5DataParameter
\x12\x35\n\x11
hdf5_output_param
\x18
q
\x01
(
\x0b\x32\x1a
.caffe.HDF5OutputParameter
\x12\x33\n\x10
hinge_loss_param
\x18
r
\x01
(
\x0b\x32\x19
.caffe.HingeLossParameter
\x12\x33\n\x10
image_data_param
\x18
s
\x01
(
\x0b\x32\x19
.caffe.ImageDataParameter
\x12\x39\n\x13
infogain_loss_param
\x18
t
\x01
(
\x0b\x32\x1c
.caffe.InfogainLossParameter
\x12\x39\n\x13
inner_product_param
\x18
u
\x01
(
\x0b\x32\x1c
.caffe.InnerProductParameter
\x12
+
\n\x0b
input_param
\x18\x8f\x01
\x01
(
\x0b\x32\x15
.caffe.InputParameter
\x12\'\n\t
log_param
\x18\x86\x01
\x01
(
\x0b\x32\x13
.caffe.LogParameter
\x12
&
\n\t
lrn_param
\x18
v
\x01
(
\x0b\x32\x13
.caffe.LRNParameter
\x12\x35\n\x11
memory_data_param
\x18
w
\x01
(
\x0b\x32\x1a
.caffe.MemoryDataParameter
\x12
&
\n\t
mvn_param
\x18
x
\x01
(
\x0b\x32\x13
.caffe.MVNParameter
\x12\x33\n\x0f
parameter_param
\x18\x91\x01
\x01
(
\x0b\x32\x19
.caffe.ParameterParameter
\x12
.
\n\r
pooling_param
\x18
y
\x01
(
\x0b\x32\x17
.caffe.PoolingParameter
\x12
*
\n\x0b
power_param
\x18
z
\x01
(
\x0b\x32\x15
.caffe.PowerParameter
\x12
+
\n\x0b
prelu_param
\x18\x83\x01
\x01
(
\x0b\x32\x15
.caffe.PReLUParameter
\x12
-
\n\x0c
python_param
\x18\x82\x01
\x01
(
\x0b\x32\x16
.caffe.PythonParameter
\x12\x33\n\x0f
reduction_param
\x18\x88\x01
\x01
(
\x0b\x32\x19
.caffe.ReductionParameter
\x12
(
\n\n
relu_param
\x18
{
\x01
(
\x0b\x32\x14
.caffe.ReLUParameter
\x12
/
\n\r
reshape_param
\x18\x85\x01
\x01
(
\x0b\x32\x17
.caffe.ReshapeParameter
\x12
+
\n\x0b
scale_param
\x18\x8e\x01
\x01
(
\x0b\x32\x15
.caffe.ScaleParameter
\x12
.
\n\r
sigmoid_param
\x18
|
\x01
(
\x0b\x32\x17
.caffe.SigmoidParameter
\x12
.
\n\r
softmax_param
\x18
}
\x01
(
\x0b\x32\x17
.caffe.SoftmaxParameter
\x12\'\n\t
spp_param
\x18\x84\x01
\x01
(
\x0b\x32\x13
.caffe.SPPParameter
\x12
*
\n\x0b
slice_param
\x18
~
\x01
(
\x0b\x32\x15
.caffe.SliceParameter
\x12
(
\n\n
tanh_param
\x18\x7f
\x01
(
\x0b\x32\x14
.caffe.TanHParameter
\x12\x33\n\x0f
threshold_param
\x18\x80\x01
\x01
(
\x0b\x32\x19
.caffe.ThresholdParameter
\x12
)
\n\n
tile_param
\x18\x8a\x01
\x01
(
\x0b\x32\x14
.caffe.TileParameter
\x12\x36\n\x11
window_data_param
\x18\x81\x01
\x01
(
\x0b\x32\x1a
.caffe.WindowDataParameter
\x12\x31\n\x0e
imagenet_param
\x18\x96\x01
\x01
(
\x0b\x32\x18
.caffe.ImagenetParameter
\x12\x36\n\x11
roi_pooling_param
\x18\x97\x01
\x01
(
\x0b\x32\x1a
.caffe.ROIPoolingParameter
\x12
;
\n\x14
smooth_l1_loss_param
\x18\x98\x01
\x01
(
\x0b\x32\x1c
.caffe.SmoothL1LossParameter
\x12\'\n\t
mpi_param
\x18\x99\x01
\x01
(
\x0b\x32\x13
.caffe.MPIParameter
\x12
/
\n\r
permute_param
\x18\x9a\x01
\x01
(
\x0b\x32\x17
.caffe.PermuteParameter
\x12\x33\n\x0f
normalize_param
\x18\x9b\x01
\x01
(
\x0b\x32\x19
.caffe.NormalizeParameter
\x12\x31\n\x0e
parallel_param
\x18\x9d\x01
\x01
(
\x0b\x32\x18
.caffe.ParallelParameter
\x12\x31\n\x0e
nnresize_param
\x18\x9e\x01
\x01
(
\x0b\x32\x18
.caffe.NNResizeParameter
\x12\x36\n\x11\x65
xpand_dims_param
\x18\x9f\x01
\x01
(
\x0b\x32\x1a
.caffe.ExpandDimsParameter
\x12\x31\n\x0e
proposal_param
\x18\xa0\x01
\x01
(
\x0b\x32\x18
.caffe.ProposalParameter
\x12\x38\n\x12\x62\x61
tch_renorm_param
\x18\xa1\x01
\x01
(
\x0b\x32\x1b
.caffe.BatchRenormParameter
\x12\x38\n\x12\x64\x65
nse_concat_param
\x18\xa3\x01
\x01
(
\x0b\x32\x1b
.caffe.DenseConcatParameter
\x12\x34\n\x10\x66
ocal_loss_param
\x18\xa4\x01
\x01
(
\x0b\x32\x19
.caffe.FocalLossParameter
\"\x93\x02\n\x17
TransformationParameter
\x12\x10\n\x05
scale
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x15\n\x06
mirror
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x14\n\t
crop_size
\x18\x03
\x01
(
\r
:
\x01\x30\x12\x11\n\t
mean_file
\x18\x04
\x01
(
\t\x12\x12\n\n
mean_value
\x18\x05
\x03
(
\x02\x12\x1a\n\x0b\x66
orce_color
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x19\n\n
force_gray
\x18\x07
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
!
\n\x12\x63
olor_augmentation
\x18\x08
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1b\n\x10
min_random_scale
\x18\t
\x01
(
\x02
:
\x01\x31\x12\x1b\n\x10
max_random_scale
\x18\n
\x01
(
\x02
:
\x01\x31\"\xeb\x01\n\r
LossParameter
\x12\x14\n\x0c
ignore_label
\x18\x01
\x01
(
\x05\x12\x44\n\r
normalization
\x18\x03
\x01
(
\x0e\x32
&.caffe.LossParameter.NormalizationMode:
\x05
VALID
\x12\x11\n\t
normalize
\x18\x02
\x01
(
\x08\x1a\'\n\x13\x45
xpandDimsParameter
\x12\x10\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x02
-1
\"
B
\n\x11
NormalizationMode
\x12\x08\n\x04\x46
ULL
\x10\x00\x12\t\n\x05
VALID
\x10\x01\x12\x0e\n\n
BATCH_SIZE
\x10\x02\x12\x08\n\x04
NONE
\x10\x03\"
L
\n\x11\x41\x63\x63
uracyParameter
\x12\x10\n\x05
top_k
\x18\x01
\x01
(
\r
:
\x01\x31\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x31\x12\x14\n\x0c
ignore_label
\x18\x03
\x01
(
\x05\"
M
\n\x0f\x41
rgMaxParameter
\x12\x1a\n\x0b
out_max_val
\x18\x01
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x10\n\x05
top_k
\x18\x02
\x01
(
\r
:
\x01\x31\x12\x0c\n\x04\x61
xis
\x18\x03
\x01
(
\x05\"
9
\n\x0f\x43
oncatParameter
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x31\x12\x15\n\n
concat_dim
\x18\x01
\x01
(
\r
:
\x01\x31\"
h
\n\x12\x42\x61
tchNormParameter
\x12\x18\n\x10
use_global_stats
\x18\x01
\x01
(
\x08\x12
$
\n\x17
moving_average_fraction
\x18\x02
\x01
(
\x02
:
\x03\x30
.9
\x12\x12\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x05\x30
.001
\"
]
\n\r
BiasParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x13\n\x08
num_axes
\x18\x02
\x01
(
\x05
:
\x01\x31\x12
&
\n\x06\x66
iller
\x18\x03
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\"
L
\n\x18\x43
ontrastiveLossParameter
\x12\x11\n\x06
margin
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x1d\n\x0e
legacy_version
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\"\xfc\x03\n\x14\x43
onvolutionParameter
\x12\x12\n\n
num_output
\x18\x01
\x01
(
\r\x12\x17\n\t
bias_term
\x18\x02
\x01
(
\x08
:
\x04
true
\x12\x0b\n\x03
pad
\x18\x03
\x03
(
\r\x12\x13\n\x0b
kernel_size
\x18\x04
\x03
(
\r\x12\x0e\n\x06
stride
\x18\x06
\x03
(
\r\x12\x10\n\x08\x64
ilation
\x18\x12
\x03
(
\r\x12\x10\n\x05
pad_h
\x18\t
\x01
(
\r
:
\x01\x30\x12\x10\n\x05
pad_w
\x18\n
\x01
(
\r
:
\x01\x30\x12\x10\n\x08
kernel_h
\x18\x0b
\x01
(
\r\x12\x10\n\x08
kernel_w
\x18\x0c
\x01
(
\r\x12\x10\n\x08
stride_h
\x18\r
\x01
(
\r\x12\x10\n\x08
stride_w
\x18\x0e
\x01
(
\r\x12\x10\n\x05
group
\x18\x05
\x01
(
\r
:
\x01\x31\x12
-
\n\r
weight_filler
\x18\x07
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x08
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
;
\n\x06\x65
ngine
\x18\x0f
\x01
(
\x0e\x32\"
.caffe.ConvolutionParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\x12\x0f\n\x04\x61
xis
\x18\x10
\x01
(
\x05
:
\x01\x31\x12\x1e\n\x0f\x66
orce_nd_im2col
\x18\x11
\x01
(
\x08
:
\x05\x66\x61
lse
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
0
\n\r
CropParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x32\x12\x0e\n\x06
offset
\x18\x02
\x03
(
\r\"\xa4\x02\n\r
DataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x04
\x01
(
\r\x12\x14\n\t
rand_skip
\x18\x07
\x01
(
\r
:
\x01\x30\x12\x31\n\x07\x62\x61\x63
kend
\x18\x08
\x01
(
\x0e\x32\x17
.caffe.DataParameter.DB:
\x07
LEVELDB
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x11\n\t
mean_file
\x18\x03
\x01
(
\t\x12\x14\n\t
crop_size
\x18\x05
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\"\n\x13\x66
orce_encoded_color
\x18\t
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x13\n\x08
prefetch
\x18\n
\x01
(
\r
:
\x01\x35\"\x1b\n\x02\x44\x42\x12\x0b\n\x07
LEVELDB
\x10\x00\x12\x08\n\x04
LMDB
\x10\x01\"
I
\n\x10\x44
ropoutParameter
\x12\x1a\n\r
dropout_ratio
\x18\x01
\x01
(
\x02
:
\x03\x30
.5
\x12\x19\n\x0b
scale_train
\x18\x02
\x01
(
\x08
:
\x04
true
\"\xa0\x01\n\x12\x44
ummyDataParameter
\x12
+
\n\x0b\x64\x61
ta_filler
\x18\x01
\x03
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x1f\n\x05
shape
\x18\x06
\x03
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x0b\n\x03
num
\x18\x02
\x03
(
\r\x12\x10\n\x08\x63
hannels
\x18\x03
\x03
(
\r\x12\x0e\n\x06
height
\x18\x04
\x03
(
\r\x12\r\n\x05
width
\x18\x05
\x03
(
\r\"\xa5\x01\n\x10\x45
ltwiseParameter
\x12\x39\n\t
operation
\x18\x01
\x01
(
\x0e\x32
!.caffe.EltwiseParameter.EltwiseOp:
\x03
SUM
\x12\r\n\x05\x63
oeff
\x18\x02
\x03
(
\x02\x12\x1e\n\x10
stable_prod_grad
\x18\x03
\x01
(
\x08
:
\x04
true
\"\'\n\t
EltwiseOp
\x12\x08\n\x04
PROD
\x10\x00\x12\x07\n\x03
SUM
\x10\x01\x12\x07\n\x03
MAX
\x10\x02\"
\n\x0c\x45
LUParameter
\x12\x10\n\x05\x61
lpha
\x18\x01
\x01
(
\x02
:
\x01\x31\"\xac\x01\n\x0e\x45
mbedParameter
\x12\x12\n\n
num_output
\x18\x01
\x01
(
\r\x12\x11\n\t
input_dim
\x18\x02
\x01
(
\r\x12\x17\n\t
bias_term
\x18\x03
\x01
(
\x08
:
\x04
true
\x12
-
\n\r
weight_filler
\x18\x04
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x05
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\"
D
\n\x0c\x45
xpParameter
\x12\x10\n\x04\x62\x61
se
\x18\x01
\x01
(
\x02
:
\x02
-1
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
shift
\x18\x03
\x01
(
\x02
:
\x01\x30\"
9
\n\x10\x46
lattenParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x14\n\x08\x65
nd_axis
\x18\x02
\x01
(
\x05
:
\x02
-1
\"
O
\n\x11
HDF5DataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x02
\x01
(
\r\x12\x16\n\x07
shuffle
\x18\x03
\x01
(
\x08
:
\x05\x66\x61
lse
\"
(
\n\x13
HDF5OutputParameter
\x12\x11\n\t
file_name
\x18\x01
\x01
(
\t\"
^
\n\x12
HingeLossParameter
\x12\x30\n\x04
norm
\x18\x01
\x01
(
\x0e\x32\x1e
.caffe.HingeLossParameter.Norm:
\x02
L1
\"\x16\n\x04
Norm
\x12\x06\n\x02
L1
\x10\x01\x12\x06\n\x02
L2
\x10\x02\"\x97\x02\n\x12
ImageDataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x15\n\n
batch_size
\x18\x04
\x01
(
\r
:
\x01\x31\x12\x14\n\t
rand_skip
\x18\x07
\x01
(
\r
:
\x01\x30\x12\x16\n\x07
shuffle
\x18\x08
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\n
new_height
\x18\t
\x01
(
\r
:
\x01\x30\x12\x14\n\t
new_width
\x18\n
\x01
(
\r
:
\x01\x30\x12\x16\n\x08
is_color
\x18\x0b
\x01
(
\x08
:
\x04
true
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x11\n\t
mean_file
\x18\x03
\x01
(
\t\x12\x14\n\t
crop_size
\x18\x05
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\x0b
root_folder
\x18\x0c
\x01
(
\t
:
\x00\"\'\n\x15
InfogainLossParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\"\xcb\x01\n\x15
InnerProductParameter
\x12\x12\n\n
num_output
\x18\x01
\x01
(
\r\x12\x17\n\t
bias_term
\x18\x02
\x01
(
\x08
:
\x04
true
\x12
-
\n\r
weight_filler
\x18\x03
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x04
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x0f\n\x04\x61
xis
\x18\x05
\x01
(
\x05
:
\x01\x31\x12\x18\n\t
transpose
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\"
1
\n\x0e
InputParameter
\x12\x1f\n\x05
shape
\x18\x01
\x03
(
\x0b\x32\x10
.caffe.BlobShape
\"
D
\n\x0c
LogParameter
\x12\x10\n\x04\x62\x61
se
\x18\x01
\x01
(
\x02
:
\x02
-1
\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
shift
\x18\x03
\x01
(
\x02
:
\x01\x30\"\xb8\x02\n\x0c
LRNParameter
\x12\x15\n\n
local_size
\x18\x01
\x01
(
\r
:
\x01\x35\x12\x10\n\x05\x61
lpha
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x12\n\x04\x62\x65
ta
\x18\x03
\x01
(
\x02
:
\x04\x30
.75
\x12\x44\n\x0b
norm_region
\x18\x04
\x01
(
\x0e\x32\x1e
.caffe.LRNParameter.NormRegion:
\x0f\x41\x43
ROSS_CHANNELS
\x12\x0c\n\x01
k
\x18\x05
\x01
(
\x02
:
\x01\x31\x12\x33\n\x06\x65
ngine
\x18\x06
\x01
(
\x0e\x32\x1a
.caffe.LRNParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
5
\n\n
NormRegion
\x12\x13\n\x0f\x41\x43
ROSS_CHANNELS
\x10\x00\x12\x12\n\x0e
WITHIN_CHANNEL
\x10\x01\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"\xbd\x01\n\x13
MemoryDataParameter
\x12\x12\n\n
batch_size
\x18\x01
\x01
(
\r\x12\x10\n\x08\x63
hannels
\x18\x02
\x01
(
\r\x12\x0e\n\x06
height
\x18\x03
\x01
(
\r\x12\r\n\x05
width
\x18\x04
\x01
(
\r\x12
;
\n\x05\x64
type
\x18\x05
\x01
(
\x0e\x32
#.caffe.MemoryDataParameter.DataType:
\x07\x46
LOAT32
\"
$
\n\x08\x44\x61
taType
\x12\x0b\n\x07\x46
LOAT32
\x10\x00\x12\x0b\n\x07\x46
LOAT16
\x10\x01\"
e
\n\x0c
MVNParameter
\x12
\n\x12
normalize_variance
\x18\x01
\x01
(
\x08
:
\x04
true
\x12\x1e\n\x0f\x61\x63
ross_channels
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x13\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x06\x31\x65
-009
\"
5
\n\x12
ParameterParameter
\x12\x1f\n\x05
shape
\x18\x01
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\"\xa2\x03\n\x10
PoolingParameter
\x12\x35\n\x04
pool
\x18\x01
\x01
(
\x0e\x32\"
.caffe.PoolingParameter.PoolMethod:
\x03
MAX
\x12\x0e\n\x03
pad
\x18\x04
\x01
(
\r
:
\x01\x30\x12\x10\n\x05
pad_h
\x18\t
\x01
(
\r
:
\x01\x30\x12\x10\n\x05
pad_w
\x18\n
\x01
(
\r
:
\x01\x30\x12\x13\n\x0b
kernel_size
\x18\x02
\x01
(
\r\x12\x10\n\x08
kernel_h
\x18\x05
\x01
(
\r\x12\x10\n\x08
kernel_w
\x18\x06
\x01
(
\r\x12\x11\n\x06
stride
\x18\x03
\x01
(
\r
:
\x01\x31\x12\x10\n\x08
stride_h
\x18\x07
\x01
(
\r\x12\x10\n\x08
stride_w
\x18\x08
\x01
(
\r\x12\x37\n\x06\x65
ngine
\x18\x0b
\x01
(
\x0e\x32\x1e
.caffe.PoolingParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\x12\x1d\n\x0e
global_pooling
\x18\x0c
\x01
(
\x08
:
\x05\x66\x61
lse
\"
.
\n\n
PoolMethod
\x12\x07\n\x03
MAX
\x10\x00\x12\x07\n\x03\x41
VE
\x10\x01\x12\x0e\n\n
STOCHASTIC
\x10\x02\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
Y
\n\x13
ROIPoolingParameter
\x12\x13\n\x08
pooled_h
\x18\x01
\x01
(
\r
:
\x01\x30\x12\x13\n\x08
pooled_w
\x18\x02
\x01
(
\r
:
\x01\x30\x12\x18\n\r
spatial_scale
\x18\x03
\x01
(
\x02
:
\x01\x31\"
F
\n\x0e
PowerParameter
\x12\x10\n\x05
power
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x10\n\x05
shift
\x18\x03
\x01
(
\x02
:
\x01\x30\"
g
\n\x0f
PythonParameter
\x12\x0e\n\x06
module
\x18\x01
\x01
(
\t\x12\r\n\x05
layer
\x18\x02
\x01
(
\t\x12\x13\n\t
param_str
\x18\x03
\x01
(
\t
:
\x00\x12
\n\x11
share_in_parallel
\x18\x04
\x01
(
\x08
:
\x05\x66\x61
lse
\"\xad\x01\n\x12
ReductionParameter
\x12
=
\n\t
operation
\x18\x01
\x01
(
\x0e\x32
%
.caffe.ReductionParameter.ReductionOp:
\x03
SUM
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\x10\n\x05\x63
oeff
\x18\x03
\x01
(
\x02
:
\x01\x31\"
5
\n\x0b
ReductionOp
\x12\x07\n\x03
SUM
\x10\x01\x12\x08\n\x04\x41
SUM
\x10\x02\x12\t\n\x05
SUMSQ
\x10\x03\x12\x08\n\x04
MEAN
\x10\x04\"\x8d\x01\n\r
ReLUParameter
\x12\x19\n\x0e
negative_slope
\x18\x01
\x01
(
\x02
:
\x01\x30\x12\x34\n\x06\x65
ngine
\x18\x02
\x01
(
\x0e\x32\x1b
.caffe.ReLUParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
Z
\n\x10
ReshapeParameter
\x12\x1f\n\x05
shape
\x18\x01
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x30\x12\x14\n\x08
num_axes
\x18\x03
\x01
(
\x05
:
\x02
-1
\"\xa5\x01\n\x0e
ScaleParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x13\n\x08
num_axes
\x18\x02
\x01
(
\x05
:
\x01\x31\x12
&
\n\x06\x66
iller
\x18\x03
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x18\n\t
bias_term
\x18\x04
\x01
(
\x08
:
\x05\x66\x61
lse
\x12
+
\n\x0b\x62
ias_filler
\x18\x05
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\"
x
\n\x10
SigmoidParameter
\x12\x37\n\x06\x65
ngine
\x18\x01
\x01
(
\x0e\x32\x1e
.caffe.SigmoidParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
L
\n\x0e
SliceParameter
\x12\x0f\n\x04\x61
xis
\x18\x03
\x01
(
\x05
:
\x01\x31\x12\x13\n\x0b
slice_point
\x18\x02
\x03
(
\r\x12\x14\n\t
slice_dim
\x18\x01
\x01
(
\r
:
\x01\x31\"\x89\x01\n\x10
SoftmaxParameter
\x12\x37\n\x06\x65
ngine
\x18\x01
\x01
(
\x0e\x32\x1e
.caffe.SoftmaxParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\x12\x0f\n\x04\x61
xis
\x18\x02
\x01
(
\x05
:
\x01\x31\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
r
\n\r
TanHParameter
\x12\x34\n\x06\x65
ngine
\x18\x01
\x01
(
\x0e\x32\x1b
.caffe.TanHParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"
T
\n\r
TileParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\r\n\x05
tiles
\x18\x02
\x01
(
\x05\x12
#
\n\t
multiples
\x18\x03
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\"
*
\n\x12
ThresholdParameter
\x12\x14\n\t
threshold
\x18\x01
\x01
(
\x02
:
\x01\x30\"\xc1\x02\n\x13
WindowDataParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x10\n\x05
scale
\x18\x02
\x01
(
\x02
:
\x01\x31\x12\x11\n\t
mean_file
\x18\x03
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x04
\x01
(
\r\x12\x14\n\t
crop_size
\x18\x05
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x19\n\x0c\x66
g_threshold
\x18\x07
\x01
(
\x02
:
\x03\x30
.5
\x12\x19\n\x0c\x62
g_threshold
\x18\x08
\x01
(
\x02
:
\x03\x30
.5
\x12\x19\n\x0b\x66
g_fraction
\x18\t
\x01
(
\x02
:
\x04\x30
.25
\x12\x16\n\x0b\x63
ontext_pad
\x18\n
\x01
(
\r
:
\x01\x30\x12\x17\n\t
crop_mode
\x18\x0b
\x01
(
\t
:
\x04
warp
\x12\x1b\n\x0c\x63\x61\x63
he_images
\x18\x0c
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\x0b
root_folder
\x18\r
\x01
(
\t
:
\x00\"\xeb\x01\n\x0c
SPPParameter
\x12\x16\n\x0e
pyramid_height
\x18\x01
\x01
(
\r\x12\x31\n\x04
pool
\x18\x02
\x01
(
\x0e\x32\x1e
.caffe.SPPParameter.PoolMethod:
\x03
MAX
\x12\x33\n\x06\x65
ngine
\x18\x06
\x01
(
\x0e\x32\x1a
.caffe.SPPParameter.Engine:
\x07\x44\x45\x46\x41
ULT
\"
.
\n\n
PoolMethod
\x12\x07\n\x03
MAX
\x10\x00\x12\x07\n\x03\x41
VE
\x10\x01\x12\x0e\n\n
STOCHASTIC
\x10\x02\"
+
\n\x06\x45
ngine
\x12\x0b\n\x07\x44\x45\x46\x41
ULT
\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43
UDNN
\x10\x02\"\xe0\x13\n\x10
V1LayerParameter
\x12\x0e\n\x06\x62
ottom
\x18\x02
\x03
(
\t\x12\x0b\n\x03
top
\x18\x03
\x03
(
\t\x12\x0c\n\x04
name
\x18\x04
\x01
(
\t\x12
$
\n\x07
include
\x18
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12
$
\n\x07\x65
xclude
\x18
!
\x03
(
\x0b\x32\x13
.caffe.NetStateRule
\x12
/
\n\x04
type
\x18\x05
\x01
(
\x0e\x32
!.caffe.V1LayerParameter.LayerType
\x12\x1f\n\x05\x62
lobs
\x18\x06
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x0e\n\x05
param
\x18\xe9\x07
\x03
(
\t\x12
>
\n\x0f\x62
lob_share_mode
\x18\xea\x07
\x03
(
\x0e\x32
$.caffe.V1LayerParameter.DimCheckMode
\x12\x10\n\x08\x62
lobs_lr
\x18\x07
\x03
(
\x02\x12\x14\n\x0c
weight_decay
\x18\x08
\x03
(
\x02\x12\x13\n\x0b
loss_weight
\x18
#
\x03
(
\x02\x12\x30\n\x0e\x61\x63\x63
uracy_param
\x18\x1b
\x01
(
\x0b\x32\x18
.caffe.AccuracyParameter
\x12
,
\n\x0c\x61
rgmax_param
\x18\x17
\x01
(
\x0b\x32\x16
.caffe.ArgMaxParameter
\x12
,
\n\x0c\x63
oncat_param
\x18\t
\x01
(
\x0b\x32\x16
.caffe.ConcatParameter
\x12
?
\n\x16\x63
ontrastive_loss_param
\x18
(
\x01
(
\x0b\x32\x1f
.caffe.ContrastiveLossParameter
\x12\x36\n\x11\x63
onvolution_param
\x18\n
\x01
(
\x0b\x32\x1b
.caffe.ConvolutionParameter
\x12
(
\n\n
data_param
\x18\x0b
\x01
(
\x0b\x32\x14
.caffe.DataParameter
\x12
.
\n\r
dropout_param
\x18\x0c
\x01
(
\x0b\x32\x17
.caffe.DropoutParameter
\x12\x33\n\x10\x64
ummy_data_param
\x18\x1a
\x01
(
\x0b\x32\x19
.caffe.DummyDataParameter
\x12
.
\n\r
eltwise_param
\x18\x18
\x01
(
\x0b\x32\x17
.caffe.EltwiseParameter
\x12
&
\n\t
exp_param
\x18
)
\x01
(
\x0b\x32\x13
.caffe.ExpParameter
\x12\x31\n\x0f
hdf5_data_param
\x18\r
\x01
(
\x0b\x32\x18
.caffe.HDF5DataParameter
\x12\x35\n\x11
hdf5_output_param
\x18\x0e
\x01
(
\x0b\x32\x1a
.caffe.HDF5OutputParameter
\x12\x33\n\x10
hinge_loss_param
\x18\x1d
\x01
(
\x0b\x32\x19
.caffe.HingeLossParameter
\x12\x33\n\x10
image_data_param
\x18\x0f
\x01
(
\x0b\x32\x19
.caffe.ImageDataParameter
\x12\x39\n\x13
infogain_loss_param
\x18\x10
\x01
(
\x0b\x32\x1c
.caffe.InfogainLossParameter
\x12\x39\n\x13
inner_product_param
\x18\x11
\x01
(
\x0b\x32\x1c
.caffe.InnerProductParameter
\x12
&
\n\t
lrn_param
\x18\x12
\x01
(
\x0b\x32\x13
.caffe.LRNParameter
\x12\x35\n\x11
memory_data_param
\x18\x16
\x01
(
\x0b\x32\x1a
.caffe.MemoryDataParameter
\x12
&
\n\t
mvn_param
\x18\"
\x01
(
\x0b\x32\x13
.caffe.MVNParameter
\x12
.
\n\r
pooling_param
\x18\x13
\x01
(
\x0b\x32\x17
.caffe.PoolingParameter
\x12
*
\n\x0b
power_param
\x18\x15
\x01
(
\x0b\x32\x15
.caffe.PowerParameter
\x12
(
\n\n
relu_param
\x18\x1e
\x01
(
\x0b\x32\x14
.caffe.ReLUParameter
\x12
.
\n\r
sigmoid_param
\x18
&
\x01
(
\x0b\x32\x17
.caffe.SigmoidParameter
\x12
.
\n\r
softmax_param
\x18\'
\x01
(
\x0b\x32\x17
.caffe.SoftmaxParameter
\x12
*
\n\x0b
slice_param
\x18\x1f
\x01
(
\x0b\x32\x15
.caffe.SliceParameter
\x12
(
\n\n
tanh_param
\x18
%
\x01
(
\x0b\x32\x14
.caffe.TanHParameter
\x12\x32\n\x0f
threshold_param
\x18\x19
\x01
(
\x0b\x32\x19
.caffe.ThresholdParameter
\x12\x35\n\x11
window_data_param
\x18\x14
\x01
(
\x0b\x32\x1a
.caffe.WindowDataParameter
\x12\x37\n\x0f
transform_param
\x18
$
\x01
(
\x0b\x32\x1e
.caffe.TransformationParameter
\x12
(
\n\n
loss_param
\x18
*
\x01
(
\x0b\x32\x14
.caffe.LossParameter
\x12
&
\n\x05
layer
\x18\x01
\x01
(
\x0b\x32\x17
.caffe.V0LayerParameter
\"\xd8\x04\n\t
LayerType
\x12\x08\n\x04
NONE
\x10\x00\x12\n\n\x06\x41\x42
SVAL
\x10
#
\x12\x0c\n\x08\x41\x43\x43
URACY
\x10\x01\x12\n\n\x06\x41
RGMAX
\x10\x1e\x12\x08\n\x04\x42
NLL
\x10\x02\x12\n\n\x06\x43
ONCAT
\x10\x03\x12\x14\n\x10\x43
ONTRASTIVE_LOSS
\x10
%
\x12\x0f\n\x0b\x43
ONVOLUTION
\x10\x04\x12\x08\n\x04\x44\x41
TA
\x10\x05\x12\x11\n\r
DECONVOLUTION
\x10\'\x12\x0b\n\x07\x44
ROPOUT
\x10\x06\x12\x0e\n\n
DUMMY_DATA
\x10
\x12\x12\n\x0e\x45
UCLIDEAN_LOSS
\x10\x07\x12\x0b\n\x07\x45
LTWISE
\x10\x19\x12\x07\n\x03\x45
XP
\x10
&
\x12\x0b\n\x07\x46
LATTEN
\x10\x08\x12\r\n\t
HDF5_DATA
\x10\t\x12\x0f\n\x0b
HDF5_OUTPUT
\x10\n\x12\x0e\n\n
HINGE_LOSS
\x10\x1c\x12\n\n\x06
IM2COL
\x10\x0b\x12\x0e\n\n
IMAGE_DATA
\x10\x0c\x12\x11\n\r
INFOGAIN_LOSS
\x10\r\x12\x11\n\r
INNER_PRODUCT
\x10\x0e\x12\x07\n\x03
LRN
\x10\x0f\x12\x0f\n\x0b
MEMORY_DATA
\x10\x1d\x12\x1d\n\x19
MULTINOMIAL_LOGISTIC_LOSS
\x10\x10\x12\x07\n\x03
MVN
\x10\"\x12\x0b\n\x07
POOLING
\x10\x11\x12\t\n\x05
POWER
\x10\x1a\x12\x08\n\x04
RELU
\x10\x12\x12\x0b\n\x07
SIGMOID
\x10\x13\x12\x1e\n\x1a
SIGMOID_CROSS_ENTROPY_LOSS
\x10\x1b\x12\x0b\n\x07
SILENCE
\x10
$
\x12\x0b\n\x07
SOFTMAX
\x10\x14\x12\x10\n\x0c
SOFTMAX_LOSS
\x10\x15\x12\t\n\x05
SPLIT
\x10\x16\x12\t\n\x05
SLICE
\x10
!
\x12\x08\n\x04
TANH
\x10\x17\x12\x0f\n\x0b
WINDOW_DATA
\x10\x18\x12\r\n\t
THRESHOLD
\x10\x1f\"
*
\n\x0c\x44
imCheckMode
\x12\n\n\x06
STRICT
\x10\x00\x12\x0e\n\n
PERMISSIVE
\x10\x01\"\xfd\x07\n\x10
V0LayerParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12\x0c\n\x04
type
\x18\x02
\x01
(
\t\x12\x12\n\n
num_output
\x18\x03
\x01
(
\r\x12\x16\n\x08\x62
iasterm
\x18\x04
\x01
(
\x08
:
\x04
true
\x12
-
\n\r
weight_filler
\x18\x05
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12
+
\n\x0b\x62
ias_filler
\x18\x06
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x0e\n\x03
pad
\x18\x07
\x01
(
\r
:
\x01\x30\x12\x12\n\n
kernelsize
\x18\x08
\x01
(
\r\x12\x10\n\x05
group
\x18\t
\x01
(
\r
:
\x01\x31\x12\x11\n\x06
stride
\x18\n
\x01
(
\r
:
\x01\x31\x12\x35\n\x04
pool
\x18\x0b
\x01
(
\x0e\x32\"
.caffe.V0LayerParameter.PoolMethod:
\x03
MAX
\x12\x1a\n\r
dropout_ratio
\x18\x0c
\x01
(
\x02
:
\x03\x30
.5
\x12\x15\n\n
local_size
\x18\r
\x01
(
\r
:
\x01\x35\x12\x10\n\x05\x61
lpha
\x18\x0e
\x01
(
\x02
:
\x01\x31\x12\x12\n\x04\x62\x65
ta
\x18\x0f
\x01
(
\x02
:
\x04\x30
.75
\x12\x0c\n\x01
k
\x18\x16
\x01
(
\x02
:
\x01\x31\x12\x0e\n\x06
source
\x18\x10
\x01
(
\t\x12\x10\n\x05
scale
\x18\x11
\x01
(
\x02
:
\x01\x31\x12\x10\n\x08
meanfile
\x18\x12
\x01
(
\t\x12\x11\n\t
batchsize
\x18\x13
\x01
(
\r\x12\x13\n\x08\x63
ropsize
\x18\x14
\x01
(
\r
:
\x01\x30\x12\x15\n\x06
mirror
\x18\x15
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x1f\n\x05\x62
lobs
\x18\x32
\x03
(
\x0b\x32\x10
.caffe.BlobProto
\x12\x10\n\x08\x62
lobs_lr
\x18\x33
\x03
(
\x02\x12\x14\n\x0c
weight_decay
\x18\x34
\x03
(
\x02\x12\x14\n\t
rand_skip
\x18\x35
\x01
(
\r
:
\x01\x30\x12\x1d\n\x10\x64\x65
t_fg_threshold
\x18\x36
\x01
(
\x02
:
\x03\x30
.5
\x12\x1d\n\x10\x64\x65
t_bg_threshold
\x18\x37
\x01
(
\x02
:
\x03\x30
.5
\x12\x1d\n\x0f\x64\x65
t_fg_fraction
\x18\x38
\x01
(
\x02
:
\x04\x30
.25
\x12\x1a\n\x0f\x64\x65
t_context_pad
\x18
:
\x01
(
\r
:
\x01\x30\x12\x1b\n\r
det_crop_mode
\x18
;
\x01
(
\t
:
\x04
warp
\x12\x12\n\x07
new_num
\x18
<
\x01
(
\x05
:
\x01\x30\x12\x17\n\x0c
new_channels
\x18
=
\x01
(
\x05
:
\x01\x30\x12\x15\n\n
new_height
\x18
>
\x01
(
\x05
:
\x01\x30\x12\x14\n\t
new_width
\x18
?
\x01
(
\x05
:
\x01\x30\x12\x1d\n\x0e
shuffle_images
\x18
@
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x15\n\n
concat_dim
\x18\x41
\x01
(
\r
:
\x01\x31\x12\x36\n\x11
hdf5_output_param
\x18\xe9\x07
\x01
(
\x0b\x32\x1a
.caffe.HDF5OutputParameter
\"
.
\n\n
PoolMethod
\x12\x07\n\x03
MAX
\x10\x00\x12\x07\n\x03\x41
VE
\x10\x01\x12\x0e\n\n
STOCHASTIC
\x10\x02\"
W
\n\x0e
PReLUParameter
\x12
&
\n\x06\x66
iller
\x18\x01
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x1d\n\x0e\x63
hannel_shared
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\"\x87\x01\n\x11
ImagenetParameter
\x12\x0e\n\x06
source
\x18\x01
\x01
(
\t\x12\x12\n\n
batch_size
\x18\x02
\x01
(
\r\x12\x13\n\x08
prefetch
\x18\x04
\x01
(
\r
:
\x01\x34\x12\x10\n\x08
imageset
\x18\x05
\x01
(
\t\x12\x16\n\x07
shuffle
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x0f\n\x04
step
\x18\x07
\x01
(
\r
:
\x01\x31\"
)
\n\x15
SmoothL1LossParameter
\x12\x10\n\x05
sigma
\x18\x01
\x01
(
\x02
:
\x01\x31\"
H
\n\x0c
MPIParameter
\x12\x0f\n\x04
root
\x18\x01
\x01
(
\r
:
\x01\x30\x12\x12\n\x07\x63
omm_id
\x18\x02
\x01
(
\x04
:
\x01\x30\x12\x13\n\x08
group_id
\x18\x03
\x01
(
\x04
:
\x01\x30\"
!
\n\x10
PermuteParameter
\x12\r\n\x05
order
\x18\x01
\x03
(
\r\"\x93\x01\n\x12
NormalizeParameter
\x12\x1c\n\x0e\x61\x63
ross_spatial
\x18\x01
\x01
(
\x08
:
\x04
true
\x12
,
\n\x0c
scale_filler
\x18\x02
\x01
(
\x0b\x32\x16
.caffe.FillerParameter
\x12\x1c\n\x0e\x63
hannel_shared
\x18\x03
\x01
(
\x08
:
\x04
true
\x12\x13\n\x03\x65
ps
\x18\x04
\x01
(
\x02
:
\x06\x31\x65
-010
\"
_
\n\x11
ParallelParameter
\x12\x16\n\x07
shuffle
\x18\x01
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x18\n\t
node_step
\x18\x02
\x01
(
\x08
:
\x05\x66\x61
lse
\x12\x18\n\t
partition
\x18\x03
\x01
(
\x08
:
\x05\x66\x61
lse
\"
T
\n\x11
NNResizeParameter
\x12\x1f\n\x05
shape
\x18\x01
\x01
(
\x0b\x32\x10
.caffe.BlobShape
\x12\x0e\n\x02\x66
x
\x18\x02
\x01
(
\x02
:
\x02
-1
\x12\x0e\n\x02\x66
y
\x18\x03
\x01
(
\x02
:
\x02
-1
\"\'\n\x13\x45
xpandDimsParameter
\x12\x10\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x02
-1
\"\xc8\x01\n\x11
ProposalParameter
\x12\x17\n\x0b\x66\x65\x61
t_stride
\x18\x01
\x01
(
\r
:
\x02\x31\x36\x12\x15\n\t
base_size
\x18\x02
\x01
(
\r
:
\x02\x31\x36\x12\x14\n\x08
min_size
\x18\x03
\x01
(
\r
:
\x02\x31\x36\x12\r\n\x05
ratio
\x18\x04
\x03
(
\x02\x12\r\n\x05
scale
\x18\x05
\x03
(
\x02\x12\x1a\n\x0c
pre_nms_topn
\x18\x06
\x01
(
\r
:
\x04\x36\x30\x30\x30\x12\x1a\n\r
post_nms_topn
\x18\x07
\x01
(
\r
:
\x03\x33\x30\x30\x12\x17\n\n
nms_thresh
\x18\x08
\x01
(
\x02
:
\x03\x30
.7
\"\xa2\x01\n\x14\x42\x61
tchRenormParameter
\x12\x18\n\x10
use_global_stats
\x18\x01
\x01
(
\x08\x12
$
\n\x17
moving_average_fraction
\x18\x02
\x01
(
\x02
:
\x03\x30
.9
\x12\x12\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x05\x30
.001
\x12\x10\n\x05
r_max
\x18\x04
\x01
(
\x02
:
\x01\x33\x12\x10\n\x05\x64
_max
\x18\x05
\x01
(
\x02
:
\x01\x35\x12\x12\n\x07
t_delta
\x18\x06
\x01
(
\x02
:
\x01\x31\"
?
\n\x14\x44\x65
nseConcatParameter
\x12\x0f\n\x04\x61
xis
\x18\x01
\x01
(
\x05
:
\x01\x31\x12\x16\n\x0b
growth_rate
\x18\x02
\x01
(
\x05
:
\x01\x30\"
d
\n\x12\x46
ocalLossParameter
\x12\x10\n\x05\x61
lpha
\x18\x01
\x01
(
\x02
:
\x01\x31\x12\x13\n\x05
gamma
\x18\x02
\x01
(
\x02
:
\x04\x30
.25
\x12\x13\n\x03\x65
ps
\x18\x03
\x01
(
\x02
:
\x06\x31\x65
-010
\x12\x12\n\x06
neg_id
\x18\x04
\x01
(
\x05
:
\x02
-1
*
\x1c\n\x05
Phase
\x12\t\n\x05
TRAIN
\x10\x00\x12\x08\n\x04
TEST
\x10\x01
'
)
)
_sym_db
.
RegisterFileDescriptor
(
DESCRIPTOR
)
...
...
@@ -40,8 +40,8 @@ _PHASE = _descriptor.EnumDescriptor(
],
containing_type
=
None
,
options
=
None
,
serialized_start
=
174
83
,
serialized_end
=
17
511
,
serialized_start
=
174
70
,
serialized_end
=
17
498
,
)
_sym_db
.
RegisterEnumDescriptor
(
_PHASE
)
...
...
@@ -5880,9 +5880,9 @@ _FOCALLOSSPARAMETER = _descriptor.Descriptor(
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
_descriptor
.
FieldDescriptor
(
name
=
'
use_pseudo_metric'
,
full_name
=
'caffe.FocalLossParameter.use_pseudo_metric
'
,
index
=
3
,
number
=
4
,
type
=
8
,
cpp_type
=
7
,
label
=
1
,
has_default_value
=
True
,
default_value
=
True
,
name
=
'
neg_id'
,
full_name
=
'caffe.FocalLossParameter.neg_id
'
,
index
=
3
,
number
=
4
,
type
=
5
,
cpp_type
=
1
,
label
=
1
,
has_default_value
=
True
,
default_value
=
-
1
,
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
...
...
@@ -5898,7 +5898,7 @@ _FOCALLOSSPARAMETER = _descriptor.Descriptor(
oneofs
=
[
],
serialized_start
=
17368
,
serialized_end
=
174
81
,
serialized_end
=
174
68
,
)
_BLOBPROTO
.
fields_by_name
[
'shape'
]
.
message_type
=
_BLOBSHAPE
...
...
Dragon/src/operators/loss/softmax_cross_entropy_op.cc
View file @
2f685b8
...
...
@@ -26,7 +26,7 @@ void SoftmaxCrossEntropyOp<Context>::RunWithType() {
}
T
normalizer
;
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
outer_dim
;
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
input
(
0
).
dim
(
0
)
;
else
if
(
normalization
==
"FULL"
)
normalizer
=
outer_dim
*
inner_dim
;
else
if
(
normalization
==
"NONE"
)
normalizer
=
1
;
T
loss
=
math
::
ASum
<
T
,
Context
>
(
losses
.
count
(),
Ldata
);
...
...
@@ -76,7 +76,7 @@ void SoftmaxCrossEntropyGradientOp<Context>::RunWithType() {
}
T
normalizer
;
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
outer_dim
;
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
input
(
0
).
dim
(
0
)
;
else
if
(
normalization
==
"FULL"
)
normalizer
=
outer_dim
*
inner_dim
;
else
if
(
normalization
==
"NONE"
)
normalizer
=
1
;
auto
*
dYdata
=
input
(
-
1
).
template
data
<
T
,
CPUContext
>
();
...
...
Dragon/src/operators/loss/sparse_softmax_cross_entropy_op.cc
View file @
2f685b8
...
...
@@ -33,7 +33,7 @@ void SparseSoftmaxCrossEntropyOp<Context>::RunWithType() {
T
normalizer
;
if
(
normalization
==
"VALID"
)
normalizer
=
math
::
ASum
<
T
,
Context
>
(
valid
.
count
(),
valid_data
);
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
outer_dim
;
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
input
(
0
).
dim
(
0
)
;
else
if
(
normalization
==
"FULL"
)
normalizer
=
outer_dim
*
inner_dim
;
else
if
(
normalization
==
"NONE"
)
normalizer
=
1
;
T
loss
=
math
::
ASum
<
T
,
Context
>
(
losses
.
count
(),
loss_data
);
...
...
@@ -91,7 +91,7 @@ void SparseSoftmaxCrossEntropyGradientOp<Context>::RunWithType() {
T
normalizer
;
if
(
normalization
==
"VALID"
)
normalizer
=
math
::
ASum
<
T
,
Context
>
(
valid
.
count
(),
valid_data
);
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
outer_dim
;
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
input
(
0
).
dim
(
0
)
;
else
if
(
normalization
==
"FULL"
)
normalizer
=
outer_dim
*
inner_dim
;
else
if
(
normalization
==
"NONE"
)
normalizer
=
1
;
auto
*
dYdata
=
input
(
-
1
).
template
data
<
T
,
CPUContext
>
();
...
...
Dragon/src/operators/loss/sparse_softmax_focal_loss_op.cc
View file @
2f685b8
...
...
@@ -19,8 +19,10 @@ void SparseSoftmaxFocalLossOp<Context>::RunWithType() {
input
(
0
).
dim
(
axis
),
outer_dim
,
inner_dim
,
alpha
,
pos_alpha
,
neg_alpha
,
gamma
,
neg_id
,
prob_data
,
label_data
,
scale_data
,
...
...
@@ -29,11 +31,6 @@ void SparseSoftmaxFocalLossOp<Context>::RunWithType() {
&
this
->
ignore
);
if
(
normalization
==
"UNIT"
)
{
if
(
use_pseudo_metric
)
{
math
::
MulScalar
<
T
,
Context
>
(
this
->
losses
.
count
(),
1.0
/
alpha
,
loss_data
);
}
output
(
0
)
->
ReshapeLike
(
this
->
losses
);
output
(
0
)
->
Share
(
this
->
losses
);
return
;
...
...
@@ -42,11 +39,10 @@ void SparseSoftmaxFocalLossOp<Context>::RunWithType() {
T
normalizer
;
if
(
normalization
==
"VALID"
)
normalizer
=
math
::
ASum
<
T
,
Context
>
(
this
->
valid
.
count
(),
valid_data
);
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
outer_dim
;
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
input
(
0
).
dim
(
0
)
;
else
if
(
normalization
==
"FULL"
)
normalizer
=
outer_dim
*
inner_dim
;
else
if
(
normalization
==
"NONE"
)
normalizer
=
1
;
T
loss
=
math
::
ASum
<
T
,
Context
>
(
this
->
losses
.
count
(),
loss_data
);
loss
=
use_pseudo_metric
?
loss
/
alpha
:
loss
;
output
(
0
)
->
Reshape
(
vector
<
TIndex
>
(
1
,
1
));
auto
*
Ydata
=
output
(
0
)
->
template
mutable_data
<
T
,
CPUContext
>
();
Ydata
[
0
]
=
loss
/
normalizer
;
...
...
@@ -88,6 +84,7 @@ void SparseSoftmaxFocalLossGradientOp<Context>::RunWithType() {
outer_dim
,
inner_dim
,
gamma
,
neg_id
,
eps
,
scale_data
,
prob_data
,
...
...
@@ -110,7 +107,7 @@ void SparseSoftmaxFocalLossGradientOp<Context>::RunWithType() {
T
normalizer
;
if
(
normalization
==
"VALID"
)
normalizer
=
math
::
ASum
<
T
,
Context
>
(
this
->
valid
.
count
(),
valid_data
);
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
outer_dim
;
else
if
(
normalization
==
"BATCH_SIZE"
)
normalizer
=
input
(
0
).
dim
(
0
)
;
else
if
(
normalization
==
"FULL"
)
normalizer
=
outer_dim
*
inner_dim
;
else
if
(
normalization
==
"NONE"
)
normalizer
=
1
;
auto
*
dYdata
=
input
(
-
1
).
template
data
<
T
,
CPUContext
>
();
...
...
Dragon/src/protos/caffemodel.proto
View file @
2f685b8
...
...
@@ -19,6 +19,8 @@ message NetParameter {
}
message
LayerParameter
{
optional
string
name
=
1
;
// the layer name
optional
string
name
=
1
;
repeated
BlobProto
blobs
=
7
;
}
\ No newline at end of file
}
Dragon/src/utils/op_kernel.cc
View file @
2f685b8
...
...
@@ -780,8 +780,10 @@ template <> void SparseSoftmaxFocalLoss<float, CPUContext>(const int count,
const
int
classes
,
const
int
outer_dim
,
const
int
inner_dim
,
const
float
alpha
,
const
float
pos_alpha
,
const
float
neg_alpha
,
const
float
gamma
,
const
int
neg_id
,
const
float
*
prob
,
const
float
*
labels
,
float
*
scale
,
...
...
@@ -793,7 +795,7 @@ template <> void SparseSoftmaxFocalLoss<float, CPUContext>(const int count,
const
int
dim
=
count
/
outer_dim
;
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
scale
[
i
]
=
alpha
*
std
::
pow
((
1.0
f
-
prob
[
i
]),
gamma
);
scale
[
i
]
=
std
::
pow
((
1.0
f
-
prob
[
i
]),
gamma
);
}
for
(
int
i
=
0
;
i
<
outer_dim
;
++
i
)
{
...
...
@@ -809,9 +811,11 @@ template <> void SparseSoftmaxFocalLoss<float, CPUContext>(const int count,
}
if
(
k
==
ignore
->
count
())
{
const
int
t_
=
i
*
dim
+
label
*
inner_dim
+
j
;
float
labeled_prob
=
prob
[
t_
];
loss
[
idx
]
=
-
scale
[
t_
]
*
std
::
log
(
std
::
max
(
labeled_prob
,
FLT_MIN
));
valid
[
idx
]
=
1
;
float
labeled_prob
=
std
::
max
(
labeled_prob
,
FLT_MIN
);
scale
[
t_
]
=
label
>
neg_id
?
pos_alpha
*
scale
[
t_
]
:
neg_alpha
*
scale
[
t_
];
loss
[
idx
]
=
-
scale
[
t_
]
*
std
::
log
(
labeled_prob
);
valid
[
idx
]
=
label
>
neg_id
?
1
:
0
;
}
}
}
...
...
@@ -822,6 +826,7 @@ template<> void SparseSoftmaxFocalLossGrad<float, CPUContext>(const int count,
const
int
outer_dim
,
const
int
inner_dim
,
const
float
gamma
,
const
int
neg_id
,
const
float
eps
,
const
float
*
scale
,
const
float
*
prob
,
...
...
@@ -855,7 +860,7 @@ template<> void SparseSoftmaxFocalLossGrad<float, CPUContext>(const int count,
dXdata
[
i_
]
=
grad
*
prob
[
i_
];
}
}
valid
[
0
]
++
;
if
(
label
>
neg_id
)
valid
[
0
]
++
;
}
}
}
...
...
Dragon/src/utils/op_kernel.cu
View file @
2f685b8
...
...
@@ -1417,19 +1417,21 @@ template<> void SparseSoftmaxCrossEntropyGrad<float, CUDAContext>(const int coun
/******************** loss.sparse_softmax_focal_loss ********************/
template <typename T>
__global__ void _FocalScale(const int count,
const float alpha,
const float gamma,
const T* prob,
T* scale) {
__global__ void _SparseSoftmaxFocalScale(const int count,
const float gamma,
const T* prob,
T* scale) {
CUDA_KERNEL_LOOP(idx, count) {
scale[idx] =
alpha *
std::pow((1.0f - prob[idx]), gamma);
scale[idx] = std::pow((1.0f - prob[idx]), gamma);
}
}
template <typename T>
__global__ void _SparseSoftmaxFocalLoss(const int count,
const T* scale,
const float pos_alpha,
const float neg_alpha,
const int neg_id,
T* scale,
const T* prob,
const T* labels,
T* loss,
...
...
@@ -1445,14 +1447,16 @@ __global__ void _SparseSoftmaxFocalLoss(const int count,
int k;
for (k = 0; k < ignore_num; k++) {
if (label == ignores[k]) {
loss[idx] = valid[idx]
= 0;
loss[idx] = valid[idx] = 0;
break;
}
}
if (k == ignore_num) {
const int t_ = (o_idx * classes + label) * inner_dim + i_idx;
scale[t_] = label > neg_id ? pos_alpha * scale[t_] :
neg_alpha * scale[t_];
loss[idx] = -scale[t_] * std::log(max(prob[t_], FLT_MIN));
valid[idx] =
1
;
valid[idx] =
label > neg_id ? 1 : 0
;
}
}
}
...
...
@@ -1461,8 +1465,10 @@ template <> void SparseSoftmaxFocalLoss<float, CUDAContext>(const int count,
const int classes,
const int outer_dim,
const int inner_dim,
const float alpha,
const float pos_alpha,
const float neg_alpha,
const float gamma,
const int neg_id,
const float* prob,
const float* labels,
float* scale,
...
...
@@ -1472,12 +1478,14 @@ template <> void SparseSoftmaxFocalLoss<float, CUDAContext>(const int count,
const int* ignores = ignore->count() > 0 ?
ignore->data<int, CUDAContext>() : nullptr;
const int num_preds = outer_dim * inner_dim;
_FocalScale<float> << <GET_BLOCKS(count), CUDA_NUM_THREADS >> >(count,
alpha,
gamma,
prob,
scale);
_SparseSoftmaxFocalScale<float> << <GET_BLOCKS(count), CUDA_NUM_THREADS >> >(count,
gamma,
prob,
scale);
_SparseSoftmaxFocalLoss<float> << <GET_BLOCKS(num_preds), CUDA_NUM_THREADS >> >(num_preds,
pos_alpha,
neg_alpha,
neg_id,
scale,
prob,
labels,
...
...
@@ -1493,6 +1501,7 @@ template <> void SparseSoftmaxFocalLoss<float, CUDAContext>(const int count,
template <typename T>
__global__ void _SparseSoftmaxFocalLossGrad(const int count,
const float gamma,
const int neg_id,
const float eps,
const T* scale,
const T* prob,
...
...
@@ -1517,7 +1526,7 @@ __global__ void _SparseSoftmaxFocalLossGrad(const int count,
} else {
const int t_ = (o_idx * classes + label) * inner_dim + i_idx;
T grad = -gamma * (scale[t_] / max((1.0f - prob[t_]), eps))
* std::log(max(prob[t_], FLT_MIN))
* std::log(max(prob[t_], FLT_MIN))
* prob[t_] + scale[t_];
for (int c = 0; c < classes; c++) {
const int i_ = (o_idx * classes + c) * inner_dim + i_idx;
...
...
@@ -1527,7 +1536,7 @@ __global__ void _SparseSoftmaxFocalLossGrad(const int count,
dx[i_] = grad * prob[i_];
}
}
valid[idx] =
1
;
valid[idx] =
label > neg_id ? 1 : 0
;
}
}
}
...
...
@@ -1537,6 +1546,7 @@ template<> void SparseSoftmaxFocalLossGrad<float, CUDAContext>(const int count,
const int outer_dim,
const int inner_dim,
const float gamma,
const int neg_id,
const float eps,
const float* scale,
const float* prob,
...
...
@@ -1549,6 +1559,7 @@ template<> void SparseSoftmaxFocalLossGrad<float, CUDAContext>(const int count,
const int num_preds = outer_dim * inner_dim;
_SparseSoftmaxFocalLossGrad<float> << <GET_BLOCKS(num_preds), CUDA_NUM_THREADS >> >(num_preds,
gamma,
neg_id,
eps,
scale,
prob,
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment