我阅读了tf.one_hot的文档并发现了
...... 新轴在尺寸轴上创建(默认值:新轴附加在末尾).
什么是The new axis?
如果indices是长度要素的向量,则输出形状将为:
如果轴== -1,则为x深度
深度x特征如果轴== 0
如果indices是具有形状[batch,features]的矩阵(批处理),则输出形状将为:
如果轴== -1,批次x的特征为x深度
如果轴== 1,则批量x深度x特征
深度x批次x特征如果轴== 0
为什么输出的形状由轴定义?
gde*_*lab 10
tf.one_hot()转换索引列表(例如[0, 2, 1])并将其转换为长度为1的热矢量列表depth.
例如,如果depth = 3,
所以[0, 2, 1]将被编码为[[1, 0, 0], [0, 0, 1], [0, 1, 0]]
如您所见,输出比输入多一个维度(因为每个索引都被一个向量替换).
默认情况下(以及您通常需要的),新维度将创建为最后一维,因此如果您的输入具有形状(d1, d2, .., dn),则输出将是形状(d1, d2, .., dn, depth).但是,如果更改输入参数轴,则可以选择将新尺寸放在其他位置,例如,如果axis=0输出形状正确(depth, d1, d2, .., dn).
更改维度的顺序基本上是转置的n维版本:您具有相同的数据,但切换索引的顺序以访问它们(相当于切换2D矩阵中的列和行).
| 归档时间: |
|
| 查看次数: |
4180 次 |
| 最近记录: |