multielman.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:cebl 作者: idfah 项目源码 文件源码
def __init__(self, x, g, recs=(8,4,2), transient=0, phi=transfer.tanh,
                 #iwInitFunc=pinit.lecun, rwInitFunc=pinit.lecun,
                 hwInitFunc=pinit.esp, vwInitFunc=pinit.lecun, optimFunc=optim.scg,
                 **kwargs):
        x = util.segmat(x)
        g = util.segmat(g)

        self.dtype = np.result_type(x.dtype, g.dtype)

        Regression.__init__(self, x.shape[2], g.shape[2])
        optim.Optable.__init__(self)

        self.transient = transient
        self.phi       = phi

        self.nRecHiddens = list(recs)
        self.nRecLayers = len(self.nRecHiddens)

        self.layerDims = [(self.nIn+self.nRecHiddens[0]+1, self.nRecHiddens[0])]
        for l in xrange(1, self.nRecLayers):
            self.layerDims.append((self.nRecHiddens[l-1]+self.nRecHiddens[l]+1, self.nRecHiddens[l]))
        self.layerDims.append((self.nRecHiddens[-1]+1, self.nOut))

        views = util.packedViews(self.layerDims, dtype=self.dtype)
        self.pw  = views[0]
        self.hws = views[1:-1]
        self.vw  = views[-1]

        self.iws = []
        self.rws = []
        nIn = self.nIn
        for l in xrange(self.nRecLayers):
            iw = self.hws[l][:(nIn+1)]
            rw = self.hws[l][(nIn+1):]
            self.iws.append(iw)
            self.rws.append(rw)

            #self.iws[l][...] = iwInitFunc(iw.shape).astype(self.dtype, copy=False)
            #self.rws[l][...] = rwInitFunc(rw.shape).astype(self.dtype, copy=False)

            nIn = self.nRecHiddens[l]

            self.hws[l][...] = hwInitFunc(self.hws[l].shape).astype(self.dtype, copy=False)

        self.vw[...] = vwInitFunc(self.vw.shape).astype(self.dtype, copy=False)

        # train the network
        if optimFunc is not None:
            self.train(x, g, optimFunc, **kwargs)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号