【发布时间】:2019-04-13 12:12:50
【问题描述】:
给定一个形状为 (2,3,3,1) 的张量,其中批量大小为 2,每个矩阵的形状为 (3,3,1)。如何从每个矩阵中找到 k 个最大元素并创建一个单热矩阵,以使这些 k 个位置的条目在其他位置为 1 和 0。 示例:(注意每个条目将是一个浮点数,为简单起见使用整数)
input_tensor=[[[1, 5, 7],
[2, 8, 1],
[3, 9, 1],
],
[[0, 9, 5],
[6, 0, 4],
[3, 0, 8]
]
]
k=3 的单热张量:
output_tensor=[[[0, 0, 1],
[0, 1, 0],
[0, 1, 0],
],
[[0, 1, 0],
[1, 0, 0],
[0, 0, 1]
]
]
tf.nn.top_k 将仅从最后一个维度返回 k 个最大元素。如何从 3d 张量 ex:(3,3,1) 中获取 k 个最大元素。 此外 tf.one_hot 将在每一行中为指定的深度和给定的索引放置一个,这不是这里的情况。
【问题讨论】:
-
您在示例中显示的
input_tensor的大小为 (2X3X3) 您能否更正您的示例或问题描述是否正确。
标签: python tensorflow deep-learning