【发布时间】:2020-06-06 16:20:54
【问题描述】:
拥有一个具有一个固定维度和一个可变长度维度的二维张量:如何将可变长度维度限制为最大长度?如果可变长度较短,则应保留最大值(而不是填充),但如果长度较长,则应截断末端。
例如,假设所有张量的形状都为(None, 4),我想让它们都限制在(3, 4) 的最大形状内。一个示例输入可能是:
tensor1 = tf.constant([
[1, 2, 0, 0],
[1, 3, 4, 0],
[0, 0, 0, 0],
[7, 7, 7, 7],
[7, 8, 9, 1],
], dtype=tf.int32)
...,它应该被修剪为:
tensor1_trimmed = tf.constant([
[1, 2, 0, 0],
[1, 3, 4, 0],
[0, 0, 0, 0],
], dtype=tf.int32)
但是,任何小于最大值的东西都应该保持不变:
tensor2 = tf.constant([
[9, 9, 9, 9],
[9, 9, 9, 9],
], dtype=tf.int32)
...应该保持原样:
tensor2_trimmed = tf.constant([
[9, 9, 9, 9],
[9, 9, 9, 9],
], dtype=tf.int32)
是否有任何内置命令可以做到这一点?或者您将如何实现这一目标?
【问题讨论】:
标签: python tensorflow tensorflow2.x