TensorFlow Estimator 官方文档之----Feature column

本文详细介绍了TensorFlow Estimator中Feature Column的使用,包括数值列、分桶列、类别标识列、类别词汇表、哈希列、组合列以及指标列和嵌入列。这些特征列在将非数值数据转换为模型输入中起到关键作用,通过不同的转换方法,如one-hot编码、哈希和嵌入,帮助模型理解和学习数据的复杂结构。

Feature column

本文档详细介绍了特征列(feature columns)。您可以将特征列视为原始数据和 Estimator 之间的媒介。特征列非常丰富,使您可以将各种原始数据转换为 Estimators 可用的格式,从而可以轻松进行实验。

在内置 Estimators 部分的教程中,我们训练了一个 tf.estimator.DNNClassifier 去完成 Iris 花的分类任务。在该例子中,我们只使用了numerical feature columns(tf.feature_column.numeric_column)类型。尽管numeric column可以有效地表示花瓣、花蕊的长度和宽度,但在实际的数据集中包含了各种特征,其中很多不是数值。
在这里插入图片描述

1. 深度神经网络的输入

深度神经网络只能处理数值类型的数据,但我们收集的特征并不全是数值类型的。以一个可包含下列三个非数值的 product_class 特征为例:

  • kitchenware
  • electronics
  • sports

机器学习模型一般将分类值表示为简单的矢量,其中 1 表示存在某个值,0 表示不存在某个值。例如,如果将product_class设置为sports时,机器学习模型通常将product_class表示为[0, 0, 1],即:

  • 0:kitchenware is absent。
  • 0:electronics is absent。
  • 1:sports is present。

因此,虽然原始数据可以是数值或分类值,但机器学习模型会将所有特征表示为数值。

2. Feature Columns

如下图所示,你可以通过 Estimator 的 feature_columns 参数来指定模型的输入。特征列在输入数据(由input_fn返回)与模型之间架起了桥梁。
在这里插入图片描述
要创建特征列,请调用 tf.feature_column 模块的函数。本文档介绍了该模块中的 9 个函数。如下图所示,除了 bucketized_column 外的函数要么返回一个 Categorical Column 对象,要么返回一个 Dense Column 对象。
在这里插入图片描述
下面我们详细介绍下这些函数。

2.1 Numeric column(数值列)

Iris 分类器对所有输入特征调用 tf.feature_column.numeric_column 函数:

  • SepalLength
  • SepalWidth
  • PetalLength
  • PetalWidth

tf.feature_column 有许多可选参数。如果不指定可选参数,将默认指定该特征列的数值类型为 tf.float32

# Defaults to a tf.float32 scalar.
numeric_feature_column = tf.feature_column.numeric_column(key="SepalLength")

可以使用dtype参数来指定数值类型。

# Represent a tf.float64 scalar.
numeric_feature_column = tf.feature_column.numeric_column(key="SepalLength",
                                                          dtype=tf.float64)

默认情况下,numeric column 只表示单个值(标量)。可以使用 shape 参数来指定形状。

# Represent a 10-element vector in which each cell contains a tf.float32.
vector_feature_column = tf.feature_column.numeric_column(key="Bowling",
                                                         shape=10)

# Represent a 10x5 matrix in which each cell contains a tf.float32.
matrix_feature_column = tf.feature_column.numeric_column(key="MyMatrix",
                                                         shape=[10,5])

2.2 Bucketized column(分桶列)

通常,我们不直接将一个数值直接传给模型,而是根据数值范围将其值分为不同的 categories。上述功能可以通过 tf.feature_column.bucketized_column 实现。以表示房屋建造年份的原始数据为例。我们并非以标量数值列表示年份,而是将年份分成下列四个分桶:
在这里插入图片描述
模型将按以下方式表示这些 bucket:

</
日期范围 表示为…
< 1960 年 [1, 0, 0, 0]
>= 1960 年但 < 1980 年 [0, 1, 0, 0]
>= 1980 年但 < 2000 年 [0, 0, 1, 0]
>= 2000 年 [0, 0, 0, 1]
<think>好的,我现在需要帮助用户解决如何从Conda环境中卸载多个TensorFlow相关包的问题。用户已经给出了具体的包名,包括tensorflowtensorflow-estimatortensorflow-intel和tensorflow-io-gcs-filesystem。我需要先确认正确的Conda命令语法,并确保用户能够顺利执行卸载操作。 首先,Conda的卸载命令通常是`conda remove`,后面跟上要卸载的包名。用户可能已经知道这一点,但需要确认是否可以在一条命令中同时卸载多个包。根据我的知识,Conda允许在同一命令中列出多个包,用空格分隔。因此,正确的命令应该是: `conda remove tensorflow tensorflow-estimator tensorflow-intel tensorflow-io-gcs-filesystem` 不过,我还需要提醒用户注意依赖关系的问题。Conda在卸载包时会检查依赖,如果其他已安装的包依赖于这些TensorFlow包,可能会阻止卸载或建议一起卸载其他依赖包。因此,用户可能会在运行命令后看到Conda的提示,需要确认是否继续执行。 另外,用户提供的引用内容中提到了使用pip卸载的情况,比如引用[2]中的多个pip uninstall命令。这里可能存在混淆,因为用户现在询问的是Conda环境下的卸载,而不是pip。但需要指出,如果在Conda环境中混合使用pip和conda安装包,可能会导致依赖管理混乱。因此,最好统一使用Conda进行卸载,或者在必要时结合使用,但需要谨慎。 接下来,用户可能需要验证卸载是否成功。可以建议用户运行`conda list`来查看当前环境中的已安装包,确认相关的TensorFlow包是否已被移除。例如,引用[1]中使用了`pip3 list | grep tensorflow`来检查,但Conda环境下应使用`conda list`命令,并可以配合grep(在Linux/Mac)或findstr(在Windows)来过滤结果。 此外,用户可能在卸载后需要重新安装其他版本的TensorFlow,或者清理环境。这时候,可以考虑创建一个新的Conda环境以避免残留依赖的影响。例如: `conda create --name new_env python=3.x` 然后激活新环境进行安装,这样可以保持环境的干净。 关于用户提供的引用[3]和[4],它们涉及TensorFlow的GPU测试和安装指南,虽然与卸载无直接关系,但可能在用户后续重新安装时有用。比如,安装完成后,用户可能想测试GPU是否可用,引用[3]中的代码片段可以用来验证。 总结步骤: 1. 执行Conda卸载命令,列出所有需要卸载的包。 2. 处理可能的依赖冲突,根据提示确认或调整卸载的包。 3. 验证卸载结果,使用conda list检查。 4. 可选步骤:创建新环境以避免残留问题。 另外,需要注意用户是否在正确的Conda环境中执行命令。如果用户有多个环境,需要先激活目标环境,使用`conda activate env_name`,然后再执行卸载命令。 最后,考虑用户可能的后续问题,比如如何处理卸载后的残留文件,或者如何彻底清理环境,但根据当前问题,可能不需要深入这些细节,除非用户进一步询问。</think>### 从Conda环境中卸载多个TensorFlow包的方法 1. **使用单条命令卸载多个包** 在Conda中,可以通过一条命令同时卸载多个包,命令格式为: ```bash conda remove --name <环境名> tensorflow tensorflow-estimator tensorflow-intel tensorflow-io-gcs-filesystem ``` 如果当前已激活目标环境,可省略`--name <环境名>`。例如: ```bash conda remove tensorflow tensorflow-estimator tensorflow-intel tensorflow-io-gcs-filesystem ``` Conda会解析依赖关系并提示确认操作[^2]。 2. **处理依赖冲突** 若存在其他包依赖这些TensorFlow组件,Conda会列出需要同步卸载的依赖项。输入`y`确认操作即可完成卸载。 3. **验证卸载结果** 执行以下命令检查剩余包: ```bash conda list | grep 'tensorflow' ``` 若无输出,则表示相关包已卸载成功[^1]。 4. **清理残留文件(可选)** 如果部分文件未被完全删除,可使用以下命令强制清理: ```bash conda clean --all ``` --- ### 补充建议 - **新建独立环境**:为避免依赖冲突,建议为TensorFlow创建独立环境: ```bash conda create --name tf_env python=3.9 conda activate tf_env ``` 随后在新环境中安装所需版本[^4]。 - **混合使用pip和conda的风险**:若环境中曾用`pip`安装TensorFlow,需额外用`pip uninstall`删除相关包(参考引用[2]中的格式)。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值