Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
5c8a2a4c
Commit
5c8a2a4c
authored
Sep 23, 2015
by
Davis King
Browse files
renamed classes
parent
163da43e
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
114 additions
and
113 deletions
+114
-113
dlib/dnn/core.h
dlib/dnn/core.h
+69
-68
dlib/dnn/core_abstract.h
dlib/dnn/core_abstract.h
+43
-43
dlib/dnn/loss.h
dlib/dnn/loss.h
+2
-2
No files found.
dlib/dnn/core.h
View file @
5c8a2a4c
...
...
@@ -19,9 +19,10 @@ namespace dlib
// ----------------------------------------------------------------------------------------
// Tell us if T is one of the special layer types (i.e. add_layer, add_loss, add_tag,
// or add_skip).
template
<
typename
T
>
struct
is_layer_type
:
std
::
false_type
{};
// Tell us if T is one of the special layer types (i.e. add_layer, add_tag_layer, or
// add_skip_layer).
template
<
typename
T
>
struct
is_nonloss_layer_type
:
std
::
false_type
{};
// Tell us if T is an instance of add_loss_layer.
template
<
typename
T
>
struct
is_loss_layer_type
:
std
::
false_type
{};
// ----------------------------------------------------------------------------------------
...
...
@@ -97,7 +98,7 @@ namespace dlib
{
/*!
WHAT THIS OBJECT REPRESENTS
This is a tool that makes an add_layer or add_loss object
This is a tool that makes an add_layer or add_loss
_layer
object
expose only the part of its interface defined by the SUB_NET
type in layers_abstract.h. This way, when we pass sub network
objects to the layer callbacks those callbacks won't be able to
...
...
@@ -112,7 +113,7 @@ namespace dlib
};
template
<
typename
T
>
class
sub_net_wrapper
<
T
,
typename
std
::
enable_if
<
is_layer_type
<
T
>::
value
>::
type
>
class
sub_net_wrapper
<
T
,
typename
std
::
enable_if
<
is_
nonloss_
layer_type
<
T
>::
value
>::
type
>
{
public:
...
...
@@ -137,11 +138,11 @@ namespace dlib
class
add_layer
;
template
<
typename
T
,
typename
U
>
struct
is_layer_type
<
add_layer
<
T
,
U
>>
:
std
::
true_type
{};
struct
is_
nonloss_
layer_type
<
add_layer
<
T
,
U
>>
:
std
::
true_type
{};
template
<
typename
LAYER_DETAILS
,
typename
SUB_NET
>
class
add_layer
<
LAYER_DETAILS
,
SUB_NET
,
typename
std
::
enable_if
<
is_layer_type
<
SUB_NET
>::
value
>::
type
>
typename
std
::
enable_if
<
is_
nonloss_
layer_type
<
SUB_NET
>::
value
>::
type
>
{
public:
typedef
LAYER_DETAILS
layer_details_type
;
...
...
@@ -531,7 +532,7 @@ namespace dlib
// ----------------------------------------------------------------------------------------
template
<
unsigned
long
ID
,
typename
SUB_NET
>
class
add_tag
class
add_tag
_layer
{
public:
typedef
SUB_NET
sub_net_type
;
...
...
@@ -541,20 +542,20 @@ namespace dlib
static_assert
(
sample_expansion_factor
>=
1
,
"The input layer can't produce fewer output tensors than there are inputs."
);
add_tag
()
=
default
;
add_tag
(
const
add_tag
&
)
=
default
;
add_tag
(
add_tag
&&
)
=
default
;
add_tag
&
operator
=
(
add_tag
&&
)
=
default
;
add_tag
&
operator
=
(
const
add_tag
&
)
=
default
;
add_tag
_layer
()
=
default
;
add_tag
_layer
(
const
add_tag
_layer
&
)
=
default
;
add_tag
_layer
(
add_tag
_layer
&&
)
=
default
;
add_tag
_layer
&
operator
=
(
add_tag
_layer
&&
)
=
default
;
add_tag
_layer
&
operator
=
(
const
add_tag
_layer
&
)
=
default
;
template
<
typename
T
>
add_tag
(
const
add_tag
<
ID
,
T
>&
item
add_tag
_layer
(
const
add_tag
_layer
<
ID
,
T
>&
item
)
:
sub_network
(
item
.
sub_net
())
{}
template
<
typename
...
T
>
add_tag
(
add_tag
_layer
(
T
...
args
)
:
sub_network
(
std
::
move
(
args
)...)
...
...
@@ -617,7 +618,7 @@ namespace dlib
};
template
<
unsigned
long
ID
,
typename
U
>
struct
is_layer_type
<
add_tag
<
ID
,
U
>>
:
std
::
true_type
{};
struct
is_
nonloss_
layer_type
<
add_tag
_layer
<
ID
,
U
>>
:
std
::
true_type
{};
// ----------------------------------------------------------------------------------------
...
...
@@ -625,26 +626,26 @@ namespace dlib
// ----------------------------------------------------------------------------------------
template
<
typename
LOSS_DETAILS
,
typename
SUB_NET
>
class
add_loss
;
class
add_loss
_layer
;
class
no_label_type
{
private:
// We don't want anyone making these no_label_type objects. They are here only to
// allow add_loss::label_type and dnn_trainer::label_type to exist which voids
// needing to overload add_loss and dnn_trainer for supervised an unsupervised
// allow add_loss
_layer
::label_type and dnn_trainer::label_type to exist which voids
// needing to overload add_loss
_layer
and dnn_trainer for supervised an unsupervised
// losses. It also can be a type to use in template metaprogramming to indicate
// "no label". So here we make the constructor private with the exception that
// add_loss objects can make it (again, just to simplify add_loss's
// add_loss
_layer
objects can make it (again, just to simplify add_loss
_layer
's
// implementation).
no_label_type
()
=
default
;
template
<
typename
LOSS_DETAILS
,
typename
SUB_NET
>
friend
class
add_loss
;
template
<
typename
LOSS_DETAILS
,
typename
SUB_NET
>
friend
class
add_loss
_layer
;
};
// ----------------------------------------------------------------------------------------
template
<
typename
LOSS_DETAILS
,
typename
SUB_NET
>
class
add_loss
class
add_loss
_layer
{
template
<
typename
T
,
typename
enabled
=
void
>
struct
get_loss_layer_label_type
...
...
@@ -666,27 +667,27 @@ namespace dlib
const
static
unsigned
int
sample_expansion_factor
=
sub_net_type
::
sample_expansion_factor
;
typedef
typename
get_loss_layer_label_type
<
LOSS_DETAILS
>::
type
label_type
;
static_assert
(
is_layer_type
<
SUB_NET
>::
value
,
"SUB_NET must be of type add_layer, add_skip, or add_tag."
);
static_assert
(
is_
nonloss_
layer_type
<
SUB_NET
>::
value
,
"SUB_NET must be of type add_layer, add_skip
_layer
, or add_tag
_layer
."
);
static_assert
(
sample_expansion_factor
==
LOSS_DETAILS
::
sample_expansion_factor
,
"The loss layer and input layer must agree on the sample_expansion_factor."
);
add_loss
()
=
default
;
add_loss
(
const
add_loss
&
)
=
default
;
add_loss
(
add_loss
&&
)
=
default
;
add_loss
&
operator
=
(
add_loss
&&
)
=
default
;
add_loss
&
operator
=
(
const
add_loss
&
)
=
default
;
add_loss
_layer
()
=
default
;
add_loss
_layer
(
const
add_loss
_layer
&
)
=
default
;
add_loss
_layer
(
add_loss
_layer
&&
)
=
default
;
add_loss
_layer
&
operator
=
(
add_loss
_layer
&&
)
=
default
;
add_loss
_layer
&
operator
=
(
const
add_loss
_layer
&
)
=
default
;
template
<
typename
T
,
typename
U
>
add_loss
(
const
add_loss
<
T
,
U
>&
item
add_loss
_layer
(
const
add_loss
_layer
<
T
,
U
>&
item
)
:
loss
(
item
.
loss_details
()),
sub
(
item
.
sub_net
())
{}
template
<
typename
...
T
>
add_loss
(
add_loss
_layer
(
const
LOSS_DETAILS
&
layer_det
,
T
&&
...
args
)
:
...
...
@@ -696,7 +697,7 @@ namespace dlib
}
template
<
typename
...
T
>
add_loss
(
add_loss
_layer
(
LOSS_DETAILS
&&
layer_det
,
T
&&
...
args
)
:
...
...
@@ -706,7 +707,7 @@ namespace dlib
}
template
<
typename
...
T
>
add_loss
(
add_loss
_layer
(
T
...
args
)
:
sub
(
std
::
move
(
args
)...)
...
...
@@ -836,7 +837,7 @@ namespace dlib
template
<
typename
T
,
typename
U
>
struct
is_loss_layer_type
<
add_loss
<
T
,
U
>>
:
std
::
true_type
{};
struct
is_loss_layer_type
<
add_loss
_layer
<
T
,
U
>>
:
std
::
true_type
{};
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
...
...
@@ -876,7 +877,7 @@ namespace dlib
return
layer_helper_match
<
Match
,
next_type
,
i
>::
layer
(
n
.
sub_net
());
}
};
// This overload catches add_layer and add_loss templates.
// This overload catches add_layer and add_loss
_layer
templates.
template
<
template
<
typename
>
class
Match
,
typename
T
,
unsigned
int
i
>
struct
layer_helper_match
<
Match
,
T
,
i
,
typename
std
::
enable_if
<
std
::
is_same
<
const
T
,
const
Match
<
typename
T
::
sub_net_type
>>::
value
>::
type
>
...
...
@@ -933,7 +934,7 @@ namespace dlib
// ----------------------------------------------------------------------------------------
template
<
template
<
typename
>
class
TAG_TYPE
,
typename
SUB_NET
>
class
add_skip
class
add_skip
_layer
{
/*!
WHAT THIS OBJECT REPRESENTS
...
...
@@ -948,20 +949,20 @@ namespace dlib
static_assert
(
sample_expansion_factor
>=
1
,
"The input layer can't produce fewer output tensors than there are inputs."
);
add_skip
()
=
default
;
add_skip
(
const
add_skip
&
)
=
default
;
add_skip
(
add_skip
&&
)
=
default
;
add_skip
&
operator
=
(
add_skip
&&
)
=
default
;
add_skip
&
operator
=
(
const
add_skip
&
)
=
default
;
add_skip
_layer
()
=
default
;
add_skip
_layer
(
const
add_skip
_layer
&
)
=
default
;
add_skip
_layer
(
add_skip
_layer
&&
)
=
default
;
add_skip
_layer
&
operator
=
(
add_skip
_layer
&&
)
=
default
;
add_skip
_layer
&
operator
=
(
const
add_skip
_layer
&
)
=
default
;
template
<
typename
T
>
add_skip
(
const
add_skip
<
TAG_TYPE
,
T
>&
item
add_skip
_layer
(
const
add_skip
_layer
<
TAG_TYPE
,
T
>&
item
)
:
sub_network
(
item
.
sub_net
())
{}
template
<
typename
...
T
>
add_skip
(
add_skip
_layer
(
T
...
args
)
:
sub_network
(
std
::
move
(
args
)...)
...
...
@@ -1036,29 +1037,29 @@ namespace dlib
sub_net_type
sub_network
;
};
template
<
template
<
typename
>
class
T
,
typename
U
>
struct
is_layer_type
<
add_skip
<
T
,
U
>>
:
std
::
true_type
{};
template
<
typename
SUB_NET
>
using
tag1
=
add_tag
<
1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag2
=
add_tag
<
2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag3
=
add_tag
<
3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag4
=
add_tag
<
4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag5
=
add_tag
<
5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag6
=
add_tag
<
6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag7
=
add_tag
<
7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag8
=
add_tag
<
8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag9
=
add_tag
<
9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag10
=
add_tag
<
10
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip1
=
add_skip
<
tag1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip2
=
add_skip
<
tag2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip3
=
add_skip
<
tag3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip4
=
add_skip
<
tag4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip5
=
add_skip
<
tag5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip6
=
add_skip
<
tag6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip7
=
add_skip
<
tag7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip8
=
add_skip
<
tag8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip9
=
add_skip
<
tag9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip10
=
add_skip
<
tag10
,
SUB_NET
>
;
struct
is_
nonloss_
layer_type
<
add_skip
_layer
<
T
,
U
>>
:
std
::
true_type
{};
template
<
typename
SUB_NET
>
using
tag1
=
add_tag
_layer
<
1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag2
=
add_tag
_layer
<
2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag3
=
add_tag
_layer
<
3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag4
=
add_tag
_layer
<
4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag5
=
add_tag
_layer
<
5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag6
=
add_tag
_layer
<
6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag7
=
add_tag
_layer
<
7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag8
=
add_tag
_layer
<
8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag9
=
add_tag
_layer
<
9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag10
=
add_tag
_layer
<
10
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip1
=
add_skip
_layer
<
tag1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip2
=
add_skip
_layer
<
tag2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip3
=
add_skip
_layer
<
tag3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip4
=
add_skip
_layer
<
tag4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip5
=
add_skip
_layer
<
tag5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip6
=
add_skip
_layer
<
tag6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip7
=
add_skip
_layer
<
tag7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip8
=
add_skip
_layer
<
tag8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip9
=
add_skip
_layer
<
tag9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip10
=
add_skip
_layer
<
tag10
,
SUB_NET
>
;
// ----------------------------------------------------------------------------------------
...
...
dlib/dnn/core_abstract.h
View file @
5c8a2a4c
...
...
@@ -138,8 +138,8 @@ namespace dlib
- SUB_NET implements the input interface (TODO clarify) defined in
input_abstract.h.
- SUB_NET is an add_layer object.
- SUB_NET is an add_tag object.
- SUB_NET is an add_skip object.
- SUB_NET is an add_tag
_layer
object.
- SUB_NET is an add_skip
_layer
object.
WHAT THIS OBJECT REPRESENTS
Stacks a new layer, defined by LAYER_DETAILS, on top of SUB_NET type.
...
...
@@ -334,7 +334,7 @@ namespace dlib
typename
LOSS_DETAILS
,
typename
SUB_NET
>
class
add_loss
class
add_loss
_layer
{
/*!
REQUIREMENTS ON LOSS_DETAILS
...
...
@@ -346,8 +346,8 @@ namespace dlib
REQUIREMENTS ON SUB_NET
- One of the following must be true:
- SUB_NET is an add_layer object.
- SUB_NET is an add_tag object.
- SUB_NET is an add_skip object.
- SUB_NET is an add_tag
_layer
object.
- SUB_NET is an add_skip
_layer
object.
WHAT THIS OBJECT REPRESENTS
- Adds a loss layer, defined by LOSS_DETAILS, on top of SUB_NET.
...
...
@@ -368,22 +368,22 @@ namespace dlib
"The loss layer and input layer must agree on the sample_expansion_factor."
);
add_loss
()
=
default
;
add_loss
(
const
add_loss
&
)
=
default
;
add_loss
(
add_loss
&&
)
=
default
;
add_loss
&
operator
=
(
add_loss
&&
)
=
default
;
add_loss
&
operator
=
(
const
add_loss
&
)
=
default
;
add_loss
_layer
()
=
default
;
add_loss
_layer
(
const
add_loss
_layer
&
)
=
default
;
add_loss
_layer
(
add_loss
_layer
&&
)
=
default
;
add_loss
_layer
&
operator
=
(
add_loss
_layer
&&
)
=
default
;
add_loss
_layer
&
operator
=
(
const
add_loss
_layer
&
)
=
default
;
template
<
typename
T
,
typename
U
>
add_loss
(
const
add_loss
<
T
,
U
>&
item
add_loss
_layer
(
const
add_loss
_layer
<
T
,
U
>&
item
)
:
loss
(
item
.
loss_details
()),
sub
(
item
.
sub_net
())
{}
template
<
typename
...
T
>
add_loss
(
add_loss
_layer
(
const
LOSS_DETAILS
&
layer_det
,
T
&&
...
args
)
:
...
...
@@ -393,7 +393,7 @@ namespace dlib
}
template
<
typename
...
T
>
add_loss
(
add_loss
_layer
(
LOSS_DETAILS
&&
layer_det
,
T
&&
...
args
)
:
...
...
@@ -403,7 +403,7 @@ namespace dlib
}
template
<
typename
...
T
>
add_loss
(
add_loss
_layer
(
T
...
args
)
:
sub
(
std
::
move
(
args
)...)
...
...
@@ -519,7 +519,7 @@ namespace dlib
template
<
typename
T
,
typename
U
>
struct
is_layer_type
<
add_loss
<
T
,
U
>>
:
std
::
true_type
{};
struct
is_layer_type
<
add_loss
_layer
<
T
,
U
>>
:
std
::
true_type
{};
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
...
...
@@ -534,7 +534,7 @@ namespace dlib
);
/*!
requires
- net_type is an object of type add_layer, add_loss, add_skip, or add_tag.
- net_type is an object of type add_layer, add_loss
_layer
, add_skip
_layer
, or add_tag
_layer
.
ensures
- This function chains together i calls to n.sub_net() and returns the
result. So for example:
...
...
@@ -559,7 +559,7 @@ namespace dlib
);
/*!
requires
- net_type is an object of type add_layer, add_loss, add_skip, or add_tag.
- net_type is an object of type add_layer, add_loss
_layer
, add_skip
_layer
, or add_tag
_layer
.
ensures
- returns the first layer in n that is of type Match. E.g. if net_type is
fc<relu<fc<input<sample_type>>>> then calling layer<relu>(n) would return
...
...
@@ -576,7 +576,7 @@ namespace dlib
);
/*!
requires
- net_type is an object of type add_layer, add_loss, add_skip, or add_tag.
- net_type is an object of type add_layer, add_loss
_layer
, add_skip
_layer
, or add_tag
_layer
.
ensures
- returns layer<i>(layer<Match>(n))
!*/
...
...
@@ -587,28 +587,28 @@ namespace dlib
unsigned
long
ID
,
typename
SUB_NET
>
class
add_tag
class
add_tag
_layer
{
/*!
WHAT THIS OBJECT REPRESENTS
This object draws its inputs from sub_net() and performs the identity
transform. This means it is a no-op and its presence does not change
the behavior of the network. It exists solely to be used by add_skip
the behavior of the network. It exists solely to be used by add_skip
_layer
to reference a particular part of a network.
!*/
};
template
<
typename
SUB_NET
>
using
tag1
=
add_tag
<
1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag2
=
add_tag
<
2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag3
=
add_tag
<
3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag4
=
add_tag
<
4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag5
=
add_tag
<
5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag6
=
add_tag
<
6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag7
=
add_tag
<
7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag8
=
add_tag
<
8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag9
=
add_tag
<
9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag10
=
add_tag
<
10
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag1
=
add_tag
_layer
<
1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag2
=
add_tag
_layer
<
2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag3
=
add_tag
_layer
<
3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag4
=
add_tag
_layer
<
4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag5
=
add_tag
_layer
<
5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag6
=
add_tag
_layer
<
6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag7
=
add_tag
_layer
<
7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag8
=
add_tag
_layer
<
8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag9
=
add_tag
_layer
<
9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
tag10
=
add_tag
_layer
<
10
,
SUB_NET
>
;
// ----------------------------------------------------------------------------------------
...
...
@@ -616,7 +616,7 @@ namespace dlib
template
<
typename
>
class
TAG_TYPE
,
typename
SUB_NET
>
class
add_skip
class
add_skip
_layer
{
/*!
WHAT THIS OBJECT REPRESENTS
...
...
@@ -625,16 +625,16 @@ namespace dlib
!*/
};
template
<
typename
SUB_NET
>
using
skip1
=
add_skip
<
tag1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip2
=
add_skip
<
tag2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip3
=
add_skip
<
tag3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip4
=
add_skip
<
tag4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip5
=
add_skip
<
tag5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip6
=
add_skip
<
tag6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip7
=
add_skip
<
tag7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip8
=
add_skip
<
tag8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip9
=
add_skip
<
tag9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip10
=
add_skip
<
tag10
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip1
=
add_skip
_layer
<
tag1
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip2
=
add_skip
_layer
<
tag2
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip3
=
add_skip
_layer
<
tag3
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip4
=
add_skip
_layer
<
tag4
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip5
=
add_skip
_layer
<
tag5
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip6
=
add_skip
_layer
<
tag6
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip7
=
add_skip
_layer
<
tag7
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip8
=
add_skip
_layer
<
tag8
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip9
=
add_skip
_layer
<
tag9
,
SUB_NET
>
;
template
<
typename
SUB_NET
>
using
skip10
=
add_skip
_layer
<
tag10
,
SUB_NET
>
;
// ----------------------------------------------------------------------------------------
...
...
@@ -663,7 +663,7 @@ namespace dlib
{
/*!
REQUIREMENTS ON net_type
- net_type is an add_loss object.
- net_type is an add_loss
_layer
object.
REQUIREMENTS ON solver_type
- solver_type is an implementation of the EXAMPLE_SOLVER interface defined
...
...
dlib/dnn/loss.h
View file @
5c8a2a4c
...
...
@@ -117,7 +117,7 @@ namespace dlib
// ----------------------------------------------------------------------------------------
template
<
typename
SUB_NET
>
using
loss_binary_hinge
=
add_loss
<
loss_binary_hinge_
,
SUB_NET
>
;
using
loss_binary_hinge
=
add_loss
_layer
<
loss_binary_hinge_
,
SUB_NET
>
;
// ----------------------------------------------------------------------------------------
...
...
@@ -164,7 +164,7 @@ namespace dlib
// ----------------------------------------------------------------------------------------
template
<
typename
SUB_NET
>
using
loss_no_label
=
add_loss
<
loss_no_label_
,
SUB_NET
>
;
using
loss_no_label
=
add_loss
_layer
<
loss_no_label_
,
SUB_NET
>
;
// ----------------------------------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
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 comment