def getscores(self, crit, data): l = T.dot(data, self.W) # (batsize, seqlen, attdim) r = T.dot(crit, self.U) # (batsize, attdim) r = r.dimshuffle(0, "x", 1) # (batsize, 1, attdim) a = T.tanh(l + r) # (batsize, seqlen, attdim) ret = T.dot(a, self.V) return ret
def rec(x_t, crit): combo = self._get_combo(x_t, crit) # (batsize, crit_dim + datadim) trans = T.dot(combo, self.W) # (batsize, innerdim) if self.nonlinearities: trans = T.tanh(trans) # apply tanh ret = T.dot(trans, self.U) # (batsize, ) if self.nonlinearities: ret = T.nnet.sigmoid(ret) # apply sigmoid return ret
def rec(x_t, crit): # x_t: (mem_dim), crit: (batsize, crit_dim) combo = self._get_combo(x_t, crit) # (batsize, crit_dim + datadim) trans = T.dot(combo, self.W) # (batsize, outdim) trans = T.tanh(trans) # apply tanh ret = T.dot(trans, self.U) # (batsize, ) return ret
def apply(self, x, mask=None, weights=None): ret = super(SimpleSeq2Bool, self).apply(x, mask=mask, weights=weights) return T.tanh(T.dot(ret, self.summ))
def innerapply(self, x): return T.tanh(x)
def innerapply(self, x, _trainmode=False): return T.tanh(x)