拥有一个固定维度和一个可变长度维度的二维张量:如何将可变长度维度限制为最大长度?如果可变长度较短,则应保持最大长度(且不填充),但如果可变长度较长,则应仅切割末端
例如,假设所有的张量都有(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)
是否有任何内置命令来执行此操作?或者你将如何实现这一点
^{} 支持numpy样式的切片,因此您可以在示例中使用
[:3,:]
相关问题 更多 >
编程相关推荐