MXnet-initializer

2018-06-21  本文已影响0人  CodePlayHu

为了能够用NDarray来初始化block或者layer,想了几个办法:假设现在有两个矩阵weight和bias,需要初始化的层叫conv

  1. mx.init.Load()
    conv.initialize(init=mx.init.Load({"weight":weight,"bias":bias}, ctx=ctx)
  2. mx.init.register()自定义初始化
@mx.init.register
class myInitializer(mx.init.Initializer):
    def __init__(self, weight,bias):
        super(myInitializer,self).__init__()
        self.weight = weight
        self.bias = bias
    def _init_weight(self, _, arr):
        arr[:] = self.weight
    def _init_bias(self, _, arr):
        arr[:] = self.bias
conv.initialize(init=myInitializer(weight,bias), ctx=ctx)
  1. mx.init.Constant()
  2. conv.weight.set_data()
    参考
注意点
上一篇 下一篇

猜你喜欢

热点阅读