当前位置: 首页>>代码示例>>Python>>正文


Python dynet.transpose方法代码示例

本文整理汇总了Python中dynet.transpose方法的典型用法代码示例。如果您正苦于以下问题:Python dynet.transpose方法的具体用法?Python dynet.transpose怎么用?Python dynet.transpose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在dynet的用法示例。


在下文中一共展示了dynet.transpose方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: forward

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def forward(self, observations):

        def log_sum_exp(scores):
            npval = scores.npvalue()
            argmax_score = np.argmax(npval)
            max_score_expr = dy.pick(scores, argmax_score)
            max_score_expr_broadcast = dy.concatenate([max_score_expr] * self.tagset_size)
            return max_score_expr + dy.log(dy.sum_dim(dy.transpose(dy.exp(scores - max_score_expr_broadcast)),[1]))

        init_alphas = [-1e10] * self.tagset_size
        init_alphas[t2i[START_TAG]] = 0
        for_expr = dy.inputVector(init_alphas)
        for obs in observations:
            alphas_t = []
            for next_tag in range(self.tagset_size):
                obs_broadcast = dy.concatenate([dy.pick(obs, next_tag)] * self.tagset_size)
                next_tag_expr = for_expr + self.transitions[next_tag] + obs_broadcast
                alphas_t.append(log_sum_exp(next_tag_expr))
            for_expr = dy.concatenate(alphas_t)
        terminal_expr = for_expr + self.transitions[t2i["<STOP>"]]
        alpha = log_sum_exp(terminal_expr)
        return alpha 
开发者ID:hankcs,项目名称:multi-criteria-cws,代码行数:24,代码来源:model.py

示例2: score_snippets

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def score_snippets(snippets, scorer):
    """ Scores snippets given a scorer.

    Inputs:
        snippets (list of Snippet): The snippets to score.
        scorer (dy.Expression): Dynet vector against which to score  the snippets.

    Returns:
        dy.Expression, list of str, where the first is the scores and the second
            is the names of the snippets that were scored.
    """
    snippet_expressions = [snippet.embedding for snippet in snippets]
    all_snippet_embeddings = dy.concatenate(snippet_expressions, d=1)

    if du.is_vector(scorer):
        scorer = du.add_dim(scorer)

    scores = dy.transpose(dy.transpose(scorer) * all_snippet_embeddings)

    if scores.dim()[0][0] != len(snippets):
        raise ValueError("Got " + str(scores.dim()[0][0]) + " scores for "
                         + str(len(snippets)) + " snippets")

    return scores, [snippet.name for snippet in snippets] 
开发者ID:lil-lab,项目名称:atis,代码行数:26,代码来源:token_predictor.py

示例3: forward

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def forward(self, observations):

        def log_sum_exp(scores):
            npval = scores.npvalue()
            argmax_score = np.argmax(npval)
            max_score_expr = dy.pick(scores, argmax_score)
            max_score_expr_broadcast = dy.concatenate([max_score_expr] * self.dim_output)
            return max_score_expr + dy.log(dy.sum_elems(dy.transpose(dy.exp(scores - max_score_expr_broadcast))))

        init_alphas = [-1e10] * self.dim_output
        init_alphas[self.sp_s] = 0
        for_expr = dy.inputVector(init_alphas)
        for obs in observations:
            alphas_t = []
            for next_tag in range(self.dim_output):
                obs_broadcast = dy.concatenate([dy.pick(obs, next_tag)] * self.dim_output)
                next_tag_expr = for_expr + self.trans[next_tag] + obs_broadcast
                alphas_t.append(log_sum_exp(next_tag_expr))
            for_expr = dy.concatenate(alphas_t)
        terminal_expr = for_expr + self.trans[self.sp_e]
        alpha = log_sum_exp(terminal_expr)
        return alpha 
开发者ID:taishi-i,项目名称:nagisa,代码行数:24,代码来源:model.py

示例4: source_ranker_cache

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def source_ranker_cache(self, rel):
        """
        test mode only (no updates, no dropout)
        :param rel: relation to create cache for quick score calculation once source is given
        :return: mode-appropriate pre-computation for association scores
        """
        T = self.embeddings.as_array()
        A = self.word_assoc_weights[rel].as_array()
        if self.mode == BILINEAR_MODE:
            return A.dot(T.transpose())
        elif self.mode == DIAG_RANK1_MODE:
            diag_A = np.diag(A[0])
            rank1_BC = np.outer(A[1],A[2])
            ABC = diag_A + rank1_BC
            return ABC.dot(T.transpose())
        elif self.mode == TRANSLATIONAL_EMBED_MODE:
            return A - T
        elif self.mode == DISTMULT:
            return A * T # elementwise, broadcast 
开发者ID:yuvalpinter,项目名称:m3gm,代码行数:21,代码来源:pretrain_assoc.py

示例5: score_from_source_cache

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def score_from_source_cache(self, cache, src):
        """
        test mode only (no updates, no dropout)
        :param cache: cache computed earlier using source_ranker_cache
        :param src: index of source node to create ranking of all targets for
        :return: array of scores for all possible targets
        """
        s = self.embeddings[src].npvalue()
        if self.mode == BILINEAR_MODE:
            return (s.dot(cache)).transpose()
        elif self.mode == DIAG_RANK1_MODE:
            return (s.dot(cache)).transpose()
        elif self.mode == TRANSLATIONAL_EMBED_MODE:
            diff_vecs = s + cache
            return -np.sqrt((diff_vecs * diff_vecs).sum(1))
        elif self.mode == DISTMULT:
            return cache.dot(s) 
开发者ID:yuvalpinter,项目名称:m3gm,代码行数:19,代码来源:pretrain_assoc.py

示例6: _compute_guided_attention

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def _compute_guided_attention(self, att_vect, decoder_step, input_size, output_size):
        if output_size <= 1 or input_size <= 1:
            return dy.scalarInput(0)

        target_probs = []

        t1 = float(decoder_step) / output_size

        for encoder_step in range(input_size):
            target_probs.append(1.0 - np.exp(-((float(encoder_step) / input_size - t1) ** 2) / 0.08))

        # print target_probs
        target_probs = dy.inputVector(target_probs)
        # print (target_probs.npvalue().shape, att_vect.npvalue().shape)

        return dy.transpose(target_probs) * att_vect 
开发者ID:tiberiu44,项目名称:TTS-Cube,代码行数:18,代码来源:g2p.py

示例7: linear_transform

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def linear_transform(exp, params):
    """ Multiplies a dy.Expression and a set of parameters.

    Inputs:
        exp (dy.Expression): A Dynet tensor.
        params (dy.Parameters): Dynet parameters.

    Returns:
        dy.Expression representing exp * params.
    """
    if is_vector(exp):
        exp = add_dim(exp)

    return dy.transpose(exp) * params 
开发者ID:lil-lab,项目名称:atis,代码行数:16,代码来源:dynet_utils.py

示例8: __call__

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def __call__(self, query, keys, values=None):
        if not values:
            values = keys

        query_t, keys_t, values_t = self.transform_arguments(query,
                                                             keys,
                                                             values)

        scores = dy.transpose(query_t * keys_t)
        distribution = dy.softmax(scores)
        context_vector = values_t * distribution

        return AttentionResult(scores, distribution, context_vector) 
开发者ID:lil-lab,项目名称:atis,代码行数:15,代码来源:attention.py

示例9: _score_vocabulary_tokens

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def _score_vocabulary_tokens(self, state):
        scores = dy.transpose(du.linear_layer(state,
                                              self.vocabulary_weights,
                                              self.vocabulary_biases))
        if scores.dim()[0][0] != len(self.vocabulary.inorder_tokens):
            raise ValueError("Got " +
                             str(scores.dim()[0][0]) +
                             " scores for " +
                             str(len(self.vocabulary.inorder_tokens)) +
                             " vocabulary items")

        return scores, self.vocabulary.inorder_tokens 
开发者ID:lil-lab,项目名称:atis,代码行数:14,代码来源:token_predictor.py

示例10: _get_snippet_scorer

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def _get_snippet_scorer(self, state):
        return dy.transpose(du.linear_layer(dy.transpose(state),
                                            self.snippet_weights)) 
开发者ID:lil-lab,项目名称:atis,代码行数:5,代码来源:token_predictor.py

示例11: ergm_score

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def ergm_score(self):
        """
        :return: ERGM score (dynet Expression) computed based on ERGM weights and features only
        Does not populate any field
        """
        W = dy.parameter(self.ergm_weights)
        f = dy.transpose(dy.inputVector([self.feature_vals[k] for k in self.feature_set]))
        return f * W 
开发者ID:yuvalpinter,项目名称:m3gm,代码行数:10,代码来源:model.py

示例12: word_assoc_score

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def word_assoc_score(self, source_idx, target_idx, relation):
        """
        NOTE THAT DROPOUT IS BEING APPLIED HERE
        :param source_idx: embedding index of source atom
        :param target_idx: embedding index of target atom
        :param relation: relation type
        :return: score
        """
        # prepare
        s = self.embeddings[source_idx]
        if self.no_assoc:
            A = dy.const_parameter(self.word_assoc_weights[relation])
        else:
            A = dy.parameter(self.word_assoc_weights[relation])
        dy.dropout(A, self.dropout)
        t = self.embeddings[target_idx]
        
        # compute
        if self.mode == BILINEAR_MODE:
            return dy.transpose(s) * A * t
        elif self.mode == DIAG_RANK1_MODE:
            diag_A = dyagonalize(A[0])
            rank1_BC = A[1] * dy.transpose(A[2])
            ABC = diag_A + rank1_BC
            return dy.transpose(s) * ABC * t
        elif self.mode == TRANSLATIONAL_EMBED_MODE:
            return -dy.l2_norm(s - t + A)
        elif self.mode == DISTMULT:
            return dy.sum_elems(dy.cmult(dy.cmult(s, A), t)) 
开发者ID:yuvalpinter,项目名称:m3gm,代码行数:31,代码来源:pretrain_assoc.py

示例13: _compute_guided_attention

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def _compute_guided_attention(self, att_vect, decoder_step, num_characters, num_mgcs):
        target_probs = []
        t1 = float(decoder_step) / num_mgcs
        for encoder_step in range(num_characters):
            target_probs.append(1.0 - np.exp(-((float(encoder_step) / num_characters - t1) ** 2) / 0.1))
        target_probs = dy.inputVector(target_probs)

        return dy.transpose(target_probs) * att_vect 
开发者ID:tiberiu44,项目名称:TTS-Cube,代码行数:10,代码来源:encoder.py

示例14: __call__

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def __call__(self, x, y):
        W = dy.parameter(self.W)
        w_x = dy.parameter(self.w_x)
        w_y = dy.parameter(self.w_y)
        b = dy.parameter(self.b)

        out = dy.transpose(x) * W * y
        out += dy.dot_product(w_x, x)
        out += dy.dot_product(w_y, y)
        out = dy.concatenate([dy.scalarInput(0)] * (self.n_out - 1) + [out])
        out += b

        return out 
开发者ID:vene,项目名称:marseille,代码行数:15,代码来源:dynet_utils.py

示例15: __call__

# 需要导入模块: import dynet [as 别名]
# 或者: from dynet import transpose [as 别名]
def __call__(self, query, options, gold, lengths, query_no):
        if len(options) == 1:
            return None, 0

        final = []
        if args.word_vectors:
            qvecs = [dy.lookup(self.pEmbedding, w) for w in query]
            qvec_max = dy.emax(qvecs)
            qvec_mean = dy.average(qvecs)
        for otext, features in options:
            inputs = dy.inputTensor(features)
            if args.word_vectors:
                ovecs = [dy.lookup(self.pEmbedding, w) for w in otext]
                ovec_max = dy.emax(ovecs)
                ovec_mean = dy.average(ovecs)
                inputs = dy.concatenate([inputs, qvec_max, qvec_mean, ovec_max, ovec_mean])
            if args.drop > 0:
                inputs = dy.dropout(inputs, args.drop)
            h = inputs
            for pH, pB in zip(self.hidden, self.bias):
                h = dy.affine_transform([pB, pH, h])
                if args.nonlin == "linear":
                    pass
                elif args.nonlin == "tanh":
                    h = dy.tanh(h)
                elif args.nonlin == "cube":
                    h = dy.cube(h)
                elif args.nonlin == "logistic":
                    h = dy.logistic(h)
                elif args.nonlin == "relu":
                    h = dy.rectify(h)
                elif args.nonlin == "elu":
                    h = dy.elu(h)
                elif args.nonlin == "selu":
                    h = dy.selu(h)
                elif args.nonlin == "softsign":
                    h = dy.softsign(h)
                elif args.nonlin == "swish":
                    h = dy.cmult(h, dy.logistic(h))
            final.append(dy.sum_dim(h, [0]))

        final = dy.concatenate(final)
        nll = -dy.log_softmax(final)
        dense_gold = []
        for i in range(len(options)):
            dense_gold.append(1.0 / len(gold) if i in gold else 0.0)
        answer = dy.inputTensor(dense_gold)
        loss = dy.transpose(answer) * nll
        predicted_link = np.argmax(final.npvalue())

        return loss, predicted_link 
开发者ID:dstc8-track2,项目名称:NOESIS-II,代码行数:53,代码来源:disentangle.py


注:本文中的dynet.transpose方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。