use*_*426 13 machine-learning multidimensional-array python-3.x tensorflow one-hot-encoding
任何人都可以有帮助的是什么的解释axis是TensorFlow的one_hot功能?
根据文件:
axis:要填充的轴(默认值:-1,新的最内轴)
不确定上下文是否同样适用.
loc*_*oop 11
对我来说,轴转换为"在哪里添加额外的数字以增加尺寸".至少这就是我如何解释它并作为助记符.
例如,你有[1,2,3,0,2,1],这是形状(6,1).这意味着它是一维数组.one_hot添加零并在原始数组的每个位置将位置转换为1,因为原始数组必须比原始数组多1个维度,并且轴告诉函数将其添加到何处,这个新维度将识别例子.
您添加第二个维度并保留第一个维度.这将导致(6,4)阵列.因此,对于生成的数组,您可以使用第一个维度(0)来了解您看到的示例,并使用第二个维度(1,新的维度)来了解该类是否处于活动状态.newArr [0] [1] = 1表示示例0,类1,在这种情况下,表示示例0属于类1.
0 1 2 3 <- class
[[ 0. 1. 0. 0.] <- example 0
[ 0. 0. 1. 0.] <- example 1
[ 0. 0. 0. 1.] <- example 2
[ 1. 0. 0. 0.] <- example 3
[ 0. 0. 1. 0.] <- example 4
[ 0. 1. 0. 0.]] <- example 5
Run Code Online (Sandbox Code Playgroud)
您添加第一个维度并移动现有维度.这将导致(4,6)阵列.因此,对于结果数组,您使用第一个维度(0,新维度)来了解该类是否处于活动状态,使用第二个维度(1)来了解您看到的示例.newArr [0] [1] = 0表示类0,例1,在这种情况下,表示示例1不是0类.
0 1 2 3 4 5 <- example
[[ 0. 0. 0. 1. 0. 0.] <- class 0
[ 1. 0. 0. 0. 0. 1.] <- class 1
[ 0. 1. 0. 0. 1. 0.] <- class 2
[ 0. 0. 1. 0. 0. 0.]] <- class 3
Run Code Online (Sandbox Code Playgroud)
Max*_*xim 10
这是一个例子:
x = tf.constant([0, 1, 2])
Run Code Online (Sandbox Code Playgroud)
...是输入张量和N=4(每个索引转换为4D向量).
axis=-1计算one_hot_1 = tf.one_hot(x, 4).eval()产生(3, 4)张量:
[[ 1. 0. 0. 0.]
[ 0. 1. 0. 0.]
[ 0. 0. 1. 0.]]
Run Code Online (Sandbox Code Playgroud)
...最后一个维度是一个热门编码(清晰可见).这对应于默认值axis=-1,即最后一个.
axis=0现在,计算one_hot_2 = tf.one_hot(x, 4, axis=0).eval()产生一个(4, 3)张量,这个张量不能立即识别为单热编码:
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]
[ 0. 0. 0.]]
Run Code Online (Sandbox Code Playgroud)
这是因为单热编码是沿着0轴完成的,并且必须转置矩阵以查看先前的编码.当输入更高维度时,情况变得更复杂,但想法是相同的:不同之处在于用于单热编码的额外维度的放置.
| 归档时间: |
|
| 查看次数: |
11166 次 |
| 最近记录: |