2017-04-08 56 views
1

有沒有方法可以用常數矩陣初始化權重/偏差?例如,我可以做Dense(hidden_​​layers_dim_1,init = W),而不是Dense(hidden_​​layers_dim_1,init = he_normal()),其中W是一個浮點矩陣。用常量初始化權重/偏差cntk

+0

由於我沒有得到答覆,我記下了對我有用的解決方案 - 我在Examples/common/nn.py中添加了一個新的線性層,它使用了初始權重和偏差。 'def linear_layer_initialized(input_var,output_dim,initW,initb): times_param = parameter(shape =((input_var.shape [0],output_dim)),init = np.array(initW,dtype = np.float32) ) t = times(input_var,times_param) return bias_param + t'參數(形狀=(output_dim),init = np.array – user7835618

回答

0

更新-1

密集層似乎現在接受numpy的陣列和恆定值作爲初始權重(cntk-2.0rc3)按照參數文檔here


圖層無法取初始權重值。但是,您可以在任何適當的圖層中使用init_bias命名參數傳入初始偏移值。但是,如果您必須使用初始權重值,那麼我想您已經創建了一個變量並像您一樣定義了您自己的網絡。即

features = <your_input_var> 
W = cntk.Parameter((<proper_shape>), init=<intial_value>) 
B = cntk.Parameter((<proper_shape>), init=<intial_value>) 

output = features @ W + B;