diff options
author | Determinant <ted.sybil@gmail.com> | 2016-03-30 13:54:14 +0800 |
---|---|---|
committer | Determinant <ted.sybil@gmail.com> | 2016-03-30 13:54:14 +0800 |
commit | 89d57b6fae6bcb0195a73fb97ab6870ee0d0ce20 (patch) | |
tree | 668e6b9810ae6c599bb0dc9bac1cc523e4cf8e6a /nerv/layer/init.lua | |
parent | 9ca106d32bd09c25ce90109714be9ef62397550c (diff) |
fix bug in passing err_input to network; gen zero vectors for biasalpha-3.3
Diffstat (limited to 'nerv/layer/init.lua')
-rw-r--r-- | nerv/layer/init.lua | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/nerv/layer/init.lua b/nerv/layer/init.lua index d266773..c5b7657 100644 --- a/nerv/layer/init.lua +++ b/nerv/layer/init.lua @@ -27,6 +27,10 @@ function Param:update(gradient) nerv.error_method_not_implemented() end +function Param:gen_zero() + return 0 +end + local Layer = nerv.class('nerv.Layer') function Layer:__init(id, global_conf, layer_conf) @@ -93,7 +97,7 @@ function Layer:get_sublayer(id) nerv.error('primitive layer does not have sublayers') end -function Layer:find_param(plist, lconf, gconf, p_type, p_dim) +function Layer:find_param(plist, lconf, gconf, p_type, p_dim, p_gen) if type(plist) == "string" then plist = {plist} end @@ -120,10 +124,12 @@ function Layer:find_param(plist, lconf, gconf, p_type, p_dim) "switch to auto-generate", plist_str, self.id) local p = p_type(pid, gconf) p.trans = self.mat_type(unpack(p_dim)) - if type(gconf.param_random) ~= "function" then + p_gen = p_gen or gconf.param_gen + or gconf.param_random -- obsolete name + if type(p_gen) ~= "function" then nerv.error("a param generate function is needed") end - p.trans:generate(gconf.param_random) + p.trans:generate(p_gen) return p end |