forked from seung-lab/znn-release
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConstant_init.hpp
62 lines (51 loc) · 1.59 KB
/
Constant_init.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//
// Copyright (C) 2014 Kisuk Lee <[email protected]>
// ----------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
#ifndef ZNN_CONSTANT_INIT_HPP_INCLUDED
#define ZNN_CONSTANT_INIT_HPP_INCLUDED
#include "initializer.hpp"
#include "../core/volume_utils.hpp"
namespace zi {
namespace znn {
class Constant_init : virtual public initializer
{
private:
double c;
public:
virtual void initialize( double3d_ptr w )
{
volume_utils::fill_one(w);
volume_utils::elementwise_mul_by(w,c);
}
virtual void init( const std::string& params )
{
// parser for parsing arguments
std::vector<double> args;
zi::zargs_::parser<std::vector<double> > arg_parser;
bool parsed = arg_parser.parse(&args,params);
if ( parsed && (args.size() >= 1) )
{
c = args[0];
}
}
public:
Constant_init( double _c = static_cast<double>(0) )
: c(_c)
{}
}; // class Constant_init
}} // namespace zi::znn
#endif // ZNN_CONSTANT_INIT_HPP_INCLUDED