def param_init_gru(options, params, prefix='gru', nin=None, dim=None, hiero=False): if nin is None: nin = options['dim_proj'] if dim is None: dim = options['dim_proj'] if not hiero: W = numpy.concatenate([norm_weight(nin, dim), norm_weight(nin, dim)], axis=1) params[prfx(prefix, 'W')] = W params[prfx(prefix, 'b')] = numpy.zeros((2 * dim,)).astype('float32') U = numpy.concatenate([ortho_weight(dim), ortho_weight(dim)], axis=1) params[prfx(prefix, 'U')] = U Wx = norm_weight(nin, dim) params[prfx(prefix, 'Wx')] = Wx Ux = ortho_weight(dim) params[prfx(prefix, 'Ux')] = Ux params[prfx(prefix, 'bx')] = numpy.zeros((dim,)).astype('float32') return params
def param_init_lstm_tied(options, params, prefix='lstm_tied', nin=None, dim=None): if nin is None: nin = options['dim_proj'] if dim is None: dim = options['dim_proj'] W = numpy.concatenate([norm_weight(nin, dim), norm_weight(nin, dim), norm_weight(nin, dim)], axis=1) params[prfx(prefix, 'W')] = W U = numpy.concatenate([ortho_weight(dim), ortho_weight(dim), ortho_weight(dim)], axis=1) params[prfx(prefix, 'U')] = U params[prfx(prefix, 'b')] = numpy.zeros((3 * dim,)).astype('float32') return params