如何在tensorflow的model_with_buckets中使用sampled_softmax_loss函数?

时间:2018-05-13 09:32:02

标签: tensorflow

在tensorflow的model_with_buckets api函数中,有一个名为softmax_loss_function的参数,其签名是Function(标签,logits) - >损失批次。

site:twitter.com "https://example.com"

分配softmax_loss_function的传统方法是使用softmax_cross_entropy_with_logits之类的东西:

def model_with_buckets(
    encoder_inputs,
    decoder_inputs,
    targets,
    weights,
    buckets,
    seq2seq,
    softmax_loss_function=None,
    per_example_loss=False,
    name=None
)

虽然sampled_softmax_loss函数具有以下定义:

def softmax_cross_entropy_with_logits(
    _sentinel=None,
    labels=None,
    logits=None,
    dim=-1,
    name=None
)

在关于将英语翻译成法国的官方tensorflow seq2seq示例中,它将samples_softmax_loss分配给model_with_bucket参数,并使用包装函数sampled_loss进行如下操作:

def sampled_softmax_loss(weights,
                     biases,
                     labels,
                     inputs,
                     num_sampled,
                     num_classes,
                     num_true=1,
                     sampled_values=None,
                     remove_accidental_hits=True,
                     partition_strategy="mod",
                     name="sampled_softmax_loss"):

这对我有用。代码运行时遇到很多错误。因为输入不等于logits。根据我的理解,logits =输入*权重+偏差。那么,在tensorflow的model_with_buckets中使用sampled_softmax_loss函数的正确方法是什么?

0 个答案:

没有答案