@tensorflow学习笔记
tf.one_hot
本文只作为个人学习记录,参考tensorflow中文官网 tf中文官网
调用格式
tf.one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None)
参数说明
· indices :一个索引的张量。
· depth : 定义one_hot 维度的标量
· on_value: 定义一个填充输出的值,其中indices[j] = i(默认:1)
· off_value: 定义填充输出的值,其中indices[j]!= i(默认:0)
· axis: 将要填充的轴axis(默认 -1 ,一个新的最内轴)
· dtype:输出张量的数据类型。
· name:操作的名称(可选)。
输出
一个 one_hot 张量
可能会出的错误
- TypeError
是否 on_value 或 off_value 与 dtype 不匹配。 - TypeError
是否 on_value , off_value 彼此不匹配
提示
-
indices 所在位置取值为 on_value,而其他位置从 off_value 取值。
-
on_value 和 off_value 数据类型一定要匹配。如果 dtype 有值,它们必须取与 dtype所显示类型相同的值。
如果 on_value 没有值,默认值为 1,类型为 dtype.
如果 off_value 没有值, 默认值为 0,类型为 dtype.
如果 indices 是 N 维,则输出为 N+1 维。新的一维创建在 axis 所示的维(默认:新的一轴加在末尾) -
如果 indices 是标量,则输出是长度为深度的向量。
如果 indices 是长为 feature 的向量,则输出将会是:
如果 indices 是一个大小为 [batch, features] 的矩阵(batch) ,输出形式为:
如果 indices 是不规则形状(RaggedTensor),axis 必须是正的,且指向一个非不规则的轴。输出会等价与 one_hot 应用与一个不规则形状的值的输出,且从结果中产生一个新的不规则形状。
如果 dtype 没有值,它会尝试假设数据的类型是 on_value 或者 off_value,如果一个或者两个都通过的话。如果 on_value, off_value, dtype 都没有值,dtpye 会默认值 为tf.float32.
**注意:如果需要非数值类型的输出(如tf.string, tf.bool, etc), on_value, off_value 都需要有值。