基于tf1.x的feature_columns相关特征处理方法到tf2.x时的迁移

这篇博客介绍了如何在 TensorFlow 2.x 中将传统特征列(feature columns)转换为 Keras 预处理层。内容涵盖了连续数值的离散化处理、字符型数据的桶化编码、字符串的数字化以及数字类型的编码。同时,提到了CategoryEncoding、Embedding、Normalization等Keras层在特征转换中的应用,确保输入数据统一为one_hot、multi_hot或integer形式。此外,还列举了sequence_categorical_column等序列数据的处理方法,帮助读者理解和迁移TensorFlow特征列到Keras预处理层的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下表是对应的特征处理表逻辑:keras layer中对应的处理类更加直接易于理解。 

例如连续性数字的离散化处理layers.Discretization

字符型或无大小关系的hash桶化:layers.Hashing

字符串的数字化编码处理:layers.StringLookup

数字类型(无大小区分)数据的数字化编码:layers.IntegerLookup

上面三个可以将输入统一化为one_hot、multi_hot或integer

对于integer形式,可以再通过使用layers.CategoryEncoding实现指定维度的映射变换(可训练)

Feature ColumnKeras Layer
feature_column.bucketized_columnlayers.Discretization
feature_column.categorical_column_with_hash_bucketlayers.Hashing
feature_column.categorical_column_with_identitylayers.CategoryEncoding
feature_column.categorical_column_with_vocabulary_filelayers.StringLookup or layers.IntegerLookup
feature_column.categorical_column_with_vocabulary_listlayers.StringLookup or layers.IntegerLookup
feature_column.crossed_columnlayers.experimental.preprocessing.HashedCrossing
feature_column.embedding_columnlayers.Embedding
feature_column.indicator_columnoutput_mode='one_hot' or output_mode='multi_hot'*
feature_column.numeric_columnlayers.Normalization
feature_column.sequence_categorical_column_with_hash_bucketlayers.Hashing
feature_column.sequence_categorical_column_with_identitylayers.CategoryEncoding
feature_column.sequence_categorical_column_with_vocabulary_filelayers.StringLookuplayers.IntegerLookup, or layer.TextVectorization
feature_column.sequence_categorical_column_with_vocabulary_listlayers.StringLookuplayers.IntegerLookup, or layer.TextVectorization
feature_column.sequence_numeric_columnlayers.Normalization
feature_column.weighted_categorical_columnlayers.CategoryEncoding

参考:Migrating feature_columns to TF2's Keras Preprocessing Layers  |  TensorFlow Core 

C:\Users\ggbond\AppData\Local\anaconda3\python.exe C:/Users/ggbond/Desktop/基于深度学习的中文语音识别系统(完整代码+报告+毕业设计)/deepspeechrecognition/test.py 2025-03-17 00:57:49.368113: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. 2025-03-17 00:57:50.202278: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. Traceback (most recent call last): File "C:\Users\ggbond\Desktop\基于深度学习的中文语音识别系统(完整代码+报告+毕业设计)\deepspeechrecognition\test.py", line 4, in <module> import tensorflow as tf File "C:\Users\ggbond\AppData\Local\anaconda3\Lib\site-packages\tensorflow\__init__.py", line 49, in <module> from tensorflow._api.v2 import __internal__ File "C:\Users\ggbond\AppData\Local\anaconda3\Lib\site-packages\tensorflow\_api\v2\__internal__\__init__.py", line 13, in <module> from tensorflow._api.v2.__internal__ import feature_column File "C:\Users\ggbond\AppData\Local\anaconda3\Lib\site-packages\tensorflow\_api\v2\__internal__\feature_column\__init__.py", line 8, in <module> from tensorflow.python.feature_column.feature_column_v2 import DenseColumn # line: 1777 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\ggbond\AppData\Local\anaconda3\Lib\site-packages\tensorflow\python\feature_column\feature_column_v2.py", line 38, in <module> from tensorflow.python.feature_column import feature_column as fc_old File "C:\Users\ggbond\AppData\Local\anaconda3\Lib\site-packages\tensorflow\python\feature_column\feature_column.py", line 41, in <module> from tensorflow.python.layers import base File "C:\Users\ggbond
03-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值