tf.nn.fixed_unigram_candidate_sampler解释

2024-05-28 03:32

本文主要是介绍tf.nn.fixed_unigram_candidate_sampler解释,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://www.tensorflow.org/api_docs/python/tf/random/fixed_unigram_candidate_sampler

 

上面链接是官网解释,看了一会儿感觉没看懂 跑了几个列子有点懂了。

本文结合https://www.w3cschool.cn/tensorflow_python/tf_nn_fixed_unigram_candidate_sampler.html    

给出更详细的解释如下:

tf.random.fixed_unigram_candidate_sampler(true_classes,num_true,num_sampled,unique,range_max,vocab_file='',distortion=1.0,num_reserved_ids=0,num_shards=1,shard=0,unigrams=(),seed=None,name=None
)

使用提供的(固定)基本分布对一组类进行采样.

该操作从整数范围[0,range_max]中随机采样num_sampled个类,所有的类的类别是[0, range_max), 每个类被采样的概率大小由参数unigrams指定,这个参数的值可以是概率的array,也可以是int的vector(表示出现次数,次数大表示被采样的概率大)

sampling_candidates的元素是在没有替换 (如果unique = True) 或替换 (如果unique = False) 的基础分布中绘制的. 

基本分布从文件中读取或作为内存中数组传入.还可以通过对权重应用distortion power(失真功率)来扭曲分布.

此外,此操作返回张量true_expected_count和sampled_expected_count,表示每个目标类(true_classes)和采样类(sampled_candidates)预期在平均张量的采样类中出现的次数.如果unique=True,则这些是拒绝后的概率,我们大致计算它们.

参数:

  • true_classes:一个int64类型的Tensor,具有shape [batch_size, num_true].目标类.
  • num_true:int,每个训练示例的目标类数.
  • num_sampled:int,随机抽样的类数.
  • unique:bool,确定批处理中的所有采样类是否都是唯一的.
  • range_max:int,可能的类数.
  • vocab_file:此文件中的每个有效行(应具有类似CSV的格式)对应于有效的单词ID.ID从num_reserved_ids开始按顺序排列.每行中的最后一个条目应该是对应于计数或相对概率的值.vocab_file和unigrams中的一个需要传递给此操作.
  • distortion:distortion(失真)用于扭曲unigram概率分布.在添加到内部unigram分布之前,首先将每个权重提升到失真的幂.结果,distortion = 1.0给出常规的unigram采样(由vocab文件定义),并且distortion = 0.0给出均匀分布.
  • num_reserved_ids:可选的,用户可以在范围[0, num_reserved_ids)内添加一些保留ID.一个用例是使用特殊的未知单词令牌作为ID 0.这些ID的抽样概率为0.
  • num_shards:采样器可用于从原始范围的子集中进行采样,以便通过并行性加速整个计算.此参数(与shard一起)表示在整体计算中使用的分区数.
  • shard:采样器可用于从原始范围的子集中进行采样,以便通过并行性加速整个计算.此参数(与num_shards一起)表示使用分区时操作的特定分区号.
  • unigrams:unigram计数或概率的列表,按顺序每个ID一个.应该将vocab_file和unigrams中的一个传递给此操作.可以是int可以是float
  • seed:int,特定于操作的种子.默认值为0.
  • name:操作的名称(可选).

返回:

  • sampled_candidates:int64类型和shape [num_sampled]的张量,抽样类.
  • true_expected_count:float类型的张量,shape与true_classes相同.每个true_classes的采样分布下的预期计数.
  • sampled_expected_count:float类型的张量.shape与sampled_candidates相同.每个sampled_candidates的采样分布下的预期计数.

测试例子


import tensorflow as tfdef test1():vec = tf.constant([[1, 2, 3, 4, 6]], dtype=tf.int64)# vec = tf.reshape(vec, [-1, 1])ids, _, _ = tf.nn.fixed_unigram_candidate_sampler(true_classes=vec,num_true=5,num_sampled=2,unique=False,range_max=5,vocab_file='',distortion=1.0,num_reserved_ids=0,num_shards=1,shard=0,unigrams=(0.1, 0.2, 0.3, 0.1, 0.3),# unigrams=(1, 2, 3, 1, 3),)# vs = ids(vec)with tf.Session() as sess:print sess.run(ids)if __name__ == '__main__':test1()

输出

[4 0]

 

 

这篇关于tf.nn.fixed_unigram_candidate_sampler解释的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009416

相关文章

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途

请解释Java Web应用中的前后端分离是什么?它有哪些好处?什么是Java Web中的Servlet过滤器?它有什么作用?

请解释Java Web应用中的前后端分离是什么?它有哪些好处? Java Web应用中的前后端分离 在Java Web应用中,前后端分离是一种开发模式,它将传统Web开发中紧密耦合的前端(用户界面)和后端(服务器端逻辑)代码进行分离,使得它们能够独立开发、测试、部署和维护。在这种模式下,前端通常通过HTTP请求与后端进行数据交换,后端则负责业务逻辑处理、数据库交互以及向前端提供RESTful

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接

OpenStack实例操作选项解释:启动和停止instance实例

关于启动和停止OpenStack实例 如果你想要启动和停止OpenStack实例时,有四种方法可以考虑。 管理员可以暂停、挂起、搁置、停止OpenStack 的计算实例。但是这些方法之间有什么不同之处? 目录 关于启动和停止OpenStack实例1.暂停和取消暂停实例2.挂起和恢复实例3.搁置(废弃)实例和取消废弃实例4.停止(删除)实例 1.暂停和取消暂停实例

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 (debug笔记)

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 ##一、 缘由及解决方法 把这个pytorch-ddpg|github搬到jupyter notebook上运行时,出现错误Nn criterions don’t compute the gradient w.r.t. targets error。注:我用

Zuul详细解释

Zuul 是 Netflix 开源的 API 网关,广泛用于微服务架构中。它作为系统的前置网关,主要功能包括路由、负载均衡、限流、安全性管理等。Zuul 最常见的应用场景是作为反向代理,它接收所有来自客户端的请求,并将请求转发给后端的微服务,从而屏蔽了微服务的复杂性。Spring Cloud 集成了 Zuul,使其成为 Spring Cloud 微服务生态系统中的一个重要组件。 为什么使用 Zu

GetWay详细解释

Spring Cloud Gateway 是 Spring Cloud 提供的一款全功能 API 网关,作为微服务架构中的流量管理工具,提供了统一的入口来处理来自客户端的所有请求。它具有以下功能:路由请求、限流、熔断、监控、认证与授权等。 Spring Cloud Gateway 的设计基于 Spring 5.0 和 Spring Boot 2.0,并与 Spring WebFlux 深度集成,

rtklib.h : RTKLIB constants, types and function prototypes 解释

在 RTKLIB 中,rtklib.h 是一个头文件,包含了与 RTKLIB 相关的常量、类型和函数原型。以下是该头文件的一些常见内容和翻译说明: 1. 常量 (Constants) rtklib.h 中定义的常量通常包括: 系统常量: 例如,GPS、GLONASS、GALILEO 等系统的常量定义。 时间常量: 如一年、一天的秒数等。 精度常量: 如距离、速度的精度标准。 2. 类型

代码编译过程详细解释

代码编译过程是将源代码转化为计算机可以执行的机器代码的过程。这个过程分为几个主要阶段,每个阶段负责将源代码逐步转化为最终的可执行文件。以下是详细的编译过程解释: 1. 预处理 (Preprocessing) 功能:处理所有的预处理指令,如 #include、#define、#ifdef 等。 主要操作: 文件包含:替换 #include 指令,插入头文件的内容。宏替换:将 #define