概述
功能:计算并返回噪声对比估计(NCE, Noise Contrastive Estimation)训练损失。
tf.nn.nce_loss(
weights,
biases,
labels,
inputs,
num_sampled,
num_classes,
num_true=1,
sampled_values=None,
remove_accidental_hits=False,
partition_strategy='mod',
name='nce_loss'
)
参数 | 必要 | 类型 | 说明 |
---|---|---|---|
weights | 是 | 张量 | shape为[num_classes, dim] |
biases | 是 | 张量 | 类偏差,shape为[num_classes] |
labels | 是 | int64 | 目标类shape[batch_size, num_true] |
inputs | 是 | 张量 | 输入网络的正向激活shape [batch_size] |
num_sampled | 是 | int | 每批随机抽样的类数 |
num_classes | 是 | int | 可能的类数 |
num_true | 否 | int | 每个训练示例的目标类数 |
sampled_values | 否 | 元组 | 采样出的负样本,由* _candidate_sampler函数返回 |
remove_accidental_hit | 否 | bool | 是否删除“意外命中” |
partition_strategy | 否 | string | 分区策略 |
name | 否 | string | 操作名称 |
这里值得一提的是:
- 如果 len(params) > 1,ids 的每个元素 id 根据 partition_strategy 在 params 元素之间被分区。
如果 partition_strategy 是 “mod”,我们将每个 id 分配给分区 p = id % len(params).例如,13个 id 分为5个分区:[[0, 5, 10], [1, 6, 11], [2, 7, 12], [3, 8], [4, 9]]
如果 partition_strategy 是 “div”,我们以连续的方式将 id 分配给分区.在这种情况下,13 个 id 分为5个分区:[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]] - 如果sampled_values是None,我们默认为log_uniform_candidate_sampler)
- 通过_compute_sampled_logits 函数计算出正样本和采样出的负样本对应的output和label
- 通过 sigmoid cross entropy来计算output和label的loss,从而进行反向传播
最后
以上就是娇气花生为你收集整理的TensorFlow函数:tf.nn.nce_loss的全部内容,希望文章能够帮你解决TensorFlow函数:tf.nn.nce_loss所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复