From 7dee5871f8f67a78ee704c9efd5d4708e8a27740 Mon Sep 17 00:00:00 2001 From: Determinant Date: Tue, 16 Feb 2016 17:04:44 +0800 Subject: improve parameter auto-detection --- nerv/layer/affine.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'nerv/layer/affine.lua') diff --git a/nerv/layer/affine.lua b/nerv/layer/affine.lua index ec13519..d83b5f2 100644 --- a/nerv/layer/affine.lua +++ b/nerv/layer/affine.lua @@ -84,14 +84,16 @@ function AffineLayer:__init(id, global_conf, layer_conf) layer_conf.ltp1 = layer_conf.ltp end for i = 1, #self.dim_in do - self["ltp" .. i] = self:find_param("ltp" .. i, layer_conf, global_conf, + local pid = "ltp" .. i + local pid_list = i == 1 and {"ltp", pid} or pid + self["ltp" .. i] = self:find_param(pid_list, layer_conf, global_conf, nerv.LinearTransParam, - {self.dim_in[i], self.dim_out[1]}) + {self.dim_in[i], self.dim_out[1]}, pid) end self.ltp = self.ltp1 -- alias of ltp1 self.bp = self:find_param("bp", layer_conf, global_conf, nerv.BiasParam, - {1, self.dim_out[1]}) + {1, self.dim_out[1]}, "bp") self.gconf = global_conf self:check_dim_len(-1, 1) -- exactly one output, allow multiple inputs end -- cgit v1.2.3