tensorflow feature_columns

news2024/11/16 7:40:44

总结来说:

  • feature_column定义了一种数据预处理的方式,可以看作是一种格式,指定了key,用于后续读取输入流中对应列的数据
  • feature_column不是tensor,所以如果在下一步应用到模型中是需要tensor,还需要通过feature_column.input_layer 进行变换后才能进行使用

如果是将feature column 喂到estimater,就不用转为Tensor(具体可以参考 wide and deep 的代码)

  • input_layer( rawData, featureColumns)
    • rawData的key和 featureColumns中的每一列 feature_column 的key是一一对应的。

reference

eat tensorflow2 in 30 days 最为系统

Tensorflow.feature_column的总结 对每一类都进行了测试 和 结果的print,比较直观

杨旭东:基于Tensorflow高阶API构建大规模分布式深度学习模型系列之特征工程Feature Columns
这篇对于feature_column的使用讲解更加深入,把一些坑点也讲的比较清楚

  • weighted_categorical_column、shared_column 和 sequence_dense_column 还没看

知乎:Tensorflow Feature Column Summary

  • tf.feature_column.input_layer 的trainable只对原来就可以设置trainable的feature column起作用,例如像tf.feature_column.embedding_column,并且只有2个都设置为True时候,在训练中才能trainable,任何一个设置为trainable=False,都将使得该column的值无法改变,也就是无法trainable.
  • tf.feature_column.input_layer 对于其他例feature column不起作用,如,tf.feature_column.indicator_column,tf.feature_column.numeric_column本身就不支持trainable,所以无论tf.feature_column.input_layer怎么设置都是无法trainable的
  • 另外tf.feature_column.input_layer 与其他tensor做contact,该trainable照样可以,不行的照样不行。

官方文档

  • tf1.15官网说明
  • tf1.15官方代码

misc

学习TensorFlow中有关特征工程的API

有关稀疏矩阵的更多介绍可以参考《深度学习之TensorFlow——入门、原理与进阶实战》一书中的9.4.17小节

  • SparseTensor在官网中已经说得蛮清楚的了

  • 把SparseTensor理解为一种存储矩阵的方式,稠密矩阵也可以这样存储,但是收益不大,少量元素为1的矩阵用这种方式去存储比较有收益。

  • 还可以参照《深度学习之TensorFlow工程化项目实战》一书7.5节的方式为词向量设置一个初始值。通过具体的数值可以更直观地查看词嵌入的输出内容

归纳总结

在这里插入图片描述

  • Categorical Column 、Embedding Column、 Indicator Column 之间的关系

    • 总的来说,Indicator Column 和 embedding Column 不能直接作用在原始特征上,而是作用在Categorical Column上,是Categorical Column的wrapper。
    • Indicator Column隶属于DenseColumn,主要是为了把Categorical Column转换成Dense Column用的,因为进入模型推理必须得是Dense Column类型
    • Embedding Column的输入是Categorical Column。可以是Indicator Column么?意义上来说是可以的,但是其本身就是Categorical Column的一个wrapper,直接把Categorical Column输入Embedding Column也是转换成了Dense Column,可以输入到模型中去的
  • Categorical Column 中 with_identity 和 with_hash_bucket 区别

    • 前者的bucket 必须设置得不小于种类数量,后者就是为了有冲突映射而存在的。
      在这里插入图片描述
  • categorical_column_with_vocabulary_list

    • default_value 和 num_oov_buckets 参数设置的相互影响
      • default_value: 当不在vocabulary_list中的默认值,这时候num_oov_buckets必须是0.
      • num_oov_buckets: 用来处理那些不在vocabulary_list中的值,如果是0,那么使用default_value进行填充;如果大于0,则会在[len(vocabulary_list), len(vocabulary_list)+num_oov_buckets]这个区间上重新计算当前特征的值.
    • 默认值-1在embeding column时映射为0向量,这是一个很有用的特性

可以用-1来填充一个不定长的ID序列,这样可以得到定长的序列,然后经过embedding column之后,填充的-1值不影响原来的结果。

  • Embedding Column的dimension设置
    推荐是输入数据种类的四次开方(fourth root)
  • crossed_column也是可以指定hash_buckect_size的
  • 继承Categorical Column的类有_get_sparse_tensor的方法,继承Dense Column的类有_get_dense_tensor的方法 (Bucketized Column多继承,所以两个都有),这两个方法输入transformation_cache数据,就可以得到对应的tensor

input_layer() 实际上就是调用get_dense_tensor方法

小坑注意

tf.feature_column.input_layer 特征顺序问题

tf.feature_column,input_layer(raw_features, feature_columns )最后输出的feature顺序不是依据feature_columns的排列顺序,而是根据feature_columns名称的字符排序的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108055.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非互联网人士如何转行互联网?

结论是,具备互联网式的做事思维积累互联网项目经验。我靠着这个方法从一名传统销售顺利转行,(之前没有任何互联网工作经验)入职了一家互联网公司做用户运营,半年前跳槽成为一个4人运营小团队的leader。 在分享我自身的…

我国丁辛醇行业现状:上游丙烯供给充足 下游需求下滑 市场出现高差价现象

根据观研报告网发布的《中国丁辛醇行业发展深度分析与投资前景研究报告(2022-2029年)》显示,丁辛醇是一种丁醇和辛醇合成的有机物,无色透明、易燃的油状液体,具有特殊的气味,能与水及多种化合物形成共沸物&…

服务器IPMI(BMC)装机

将网线连接服务器的控制口与PC,服务器的控制口默认IP为192.168.100.100,网关默认为192.168.100.1,将PC的IP修改为与服务器控制口相同网段。打开浏览器,输入https://19168.100.100,进入IPMI登录界面。账号密码需要找运维…

Apache Airflow Hive Provider <5.0.0 存在操作系统命令注入漏洞

漏洞描述 Apache Airflow 是一个用于以编程方式创作、安排和监控工作流平台。Apache Airflow Hive Provider 是一个使用 SQL 读取、写入和管理分布式存储中的大型数据集的工具包。 Apache Airflow Hive Provider 在 5.0.0 之前的版本中由于对airflow/providers/apache/hive/h…

Stm32标准库函数6——f103 PWM 电调(50Hz)

#include "stm32f10x.h" #include "delay.h" TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; u16 Ppm; /************************************************* 函数: void RCC_Configuration(void) 功能: 配…

D. Friends and Subsequences Codeforces Round #361 (Div. 2)RMQ+二分 单调队列

题目传送门 题意为 给定两个长度为n的数组,设为a数组和b数组,需要找到所有可能的区间中,a数组的最大值等于b数组的最小值的个数。 1:RMQ 二分 RMQ 能找到一个数组在任意区间的最大值或者最小值,只需要在O(n)的时间…

【Java基础知识复盘】HashMap篇——持续更新中

本人知识复盘系列的博客并非全部原创,大部分摘自网络,只是为了记录在自己的博客方便查阅,往后也会陆续在本篇博客更新本人查阅到的新的知识点,望悉知! HashMap 概述 HashMap 是一个散列表,它存储的内容是…

hashMap相关

文章目录HashMapHashMap介绍HashMap在 JDK1.7和 JDK1.8中的区别JDK1.7中HashMap头插法死循环的原因HashMap的底层原理HashMap的扩容机制解决Hash冲突的方法为什么在解决hash冲突的时候选择先用链表,再转红黑树?HashMap为什么线程不安全一般用什么作为HashMap的key?…

程序员需要达到什么水平才能顺利拿到 20k 无压力?

很有趣的是,在程序员身上,我看到了最明显,也最有趣的贫富差距。 根据2022最新版大厂新入职员工职级对应表,大厂技术线的员工轻而易举地拿到了20w的水平,而只要往上够一够,30w也不是什么难事。 然而&#xf…

玩转云服务器:怎样用云服务器架设大型3D魔幻手游【魔域】服务器,实现联机多人同玩,带你一起搞机,了解游戏搭建过程,详细教程

准备工作: 你首先要准备一台云服务器! 服务器配置:2核4G以上配置! 服务器系统:win2012 开始搭建: 下载游戏服务端(有些多人叫源码,这里我就不解释了,喜欢怎么叫就怎…

SpringCloud Alibaba | 网关(三) : SpringCloudGateway 过滤器获取application/json中body数据

SpringCloudGateway 过滤器获取application/json中body数据一、前言二、通过cachedRequestBodyObject缓存获取三、ServerHttpRequest getBody方法获取四、(* ̄︶ ̄)一、前言 项目接口需要加解密,就在网关层进行解密操作。那么问题来了怎么在gateway 的filt…

基于松鼠算法改进的DELM预测-附代码

松鼠算法改进的深度极限学习机DELM的回归预测 文章目录松鼠算法改进的深度极限学习机DELM的回归预测1.ELM原理2.深度极限学习机(DELM)原理3.松鼠算法4.松鼠算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理 ELM基础原理请参考:https:…

线程池相关

文章目录为什么需要线程池?池化思想常用方法execute()方法submit()方法shutdownisShutdownisTerminatedawaitTerminationshutdownNow创建线程池 七个参数流程JAVA线程池有哪几种类型?线程池常用的阻塞队列有哪些?源码中线程池是怎么复用线程的?如何合理配置线程池…

EMQX Cloud 自定义函数实现多种 IoT 数据形式的灵活转化

物联网场景中,各类设备终端的种类繁杂,所使用的通信协议各异,从而使得应用层的数据格式也各不相同。为了帮助用户实现统一数据格式,EMQX Cloud 最近推出了自定义函数功能:根据用户自定义的脚本对设备上报的数据进行预处…

上美股份在港交所上市:预计全年利润下滑,一叶子收入持续走低

12月22日,上海上美化妆品股份有限公司(HK:02145,下称“上美股份”)在港交所上市。本次上市,上美股份的发行价格为25.20港元/股,为此前发行区间的最低值。据此计算,上美股份的募资总额约为9.31亿…

CDH6.3.2集成Apache Atlas2.1.0

1 环境准备 1.1 CDH6.3.2 环境搭建 参考文档如下 Cloudera Manager安装CDH6教程-(一)虚拟环境安装配置 Cloudera Manager安装CDH6教程-(二)搭建Cloudera和CDH6 CM和CDH在安装的时候遇到的问题 CDH6.3.2 各组件版本 1.2 apa…

火爆“有机新消费”驶入酱油赛道 好记打造我国有机酱油行业领导品牌

根据观研报告网发布的《2022年中国有机酱油市场分析报告-市场竞争策略与发展动向前瞻》显示,有机酱油是指采用有机农作物为原料酿制的酱油。有机酱油含有浓郁的酱香和脂香,是一种不可多得的上等调味品,适合于蘸食,红烧&#xff0c…

以技术创新践行社会责任,欧科云链斩获界面新闻年度双项大奖

12月20日,欧科云链凭借在区块链技术领域的创新,与腾讯、宁德时代和埃森哲等各领域领先企业一同荣获“2022好公司行业领先大奖”。 12月21日,欧科云链以区块链科技之力积极践行社会责任,绽放商业向善的力量,与茅台、蚂蚁…

华为云Stack智能进化,三大举措赋能政企深度用云

【中国,深圳,2022年12月22日】今天,以“政企深度用云,释放数字生产力”为主题的华为云Stack战略暨新品发布会在线上举办,华为云围绕“让技术不难用、让场景变简单、让经验可复制”提出三大关键举措赋能政企迈向深度用云…

无线鼠标怎么连接电脑?2个方法,轻松学会

现在越来越多的小伙伴都喜欢使用无线鼠标。相比于有线鼠标,无线鼠标方便快捷,不会受到USB线的束缚。可是很多小伙伴买回无线鼠标,第一次使用的时候,却发现自己不知道怎么使用。无线鼠标怎么连接电脑?今天小编给大家带来…