Qualia
0.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
qualia
learning
GradientFunction.h
Go to the documentation of this file.
1
/*
2
* GradientGradientFunction.h
3
*
4
* (c) 2013 Sofian Audry -- info(@)sofianaudry(.)com
5
*
6
* This program is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef GRADIENTFUNCTION_H_
21
#define GRADIENTFUNCTION_H_
22
23
#include <
qualia/core/common.h
>
24
#include <
qualia/learning/Function.h
>
25
26
#include <string.h>
27
33
class
GradientFunction
:
public
Function
{
34
public
:
35
// Parameters.
36
38
real
*
weights
;
39
41
real
*
dWeights
;
42
43
// Constructor/destructor.
44
GradientFunction
() :
weights
(0),
dWeights
(0) {}
45
virtual
~GradientFunction
() {}
46
48
virtual
void
clearDelta
() {
49
memset(
dWeights
, 0,
nParams
()*
sizeof
(
real
));
50
}
51
53
virtual
unsigned
int
nParams
()
const
= 0;
54
56
virtual
void
backpropagate
(
real
* outputError) = 0;
57
59
virtual
void
update
() = 0;
60
62
virtual
void
save
(
XFile
* file) {
63
file->
taggedWrite
(
weights
,
sizeof
(
real
),
nParams
(),
"W"
);
64
}
65
67
virtual
void
load
(
XFile
* file) {
68
file->
taggedRead
(
weights
,
sizeof
(
real
),
nParams
(),
"W"
);
69
}
70
};
71
72
#endif
/* GRADIENTFUNCTION_H_ */
Generated on Fri Oct 11 2013 19:01:21 for Qualia by
1.8.3.1