<p>您可以执行以下操作。我知道这可能有点头晕。最简单的方法就是使用此代码作为参考来做一个示例</p>
<pre><code>def f(data):
# Boolean mask where it's not 10
a = (data != 10)
# Repeat and reshape to n x 5 x 5
a = tf.reshape(tf.repeat(a, 5), [-1, 5, 5])
# Create a identity matrix of size 1 x 5 x 5
eye = tf.reshape(tf.eye(5), [1,5,5])
# Create a mask of size n x 5 x 5. This basically forces a to have only a single false value for each row
# This single false element is the element to be removed
mask = ~tf.cast(tf.reshape(tf.cast(a,'int32')* tf.cast(eye, 'int32'), [-1, 5]), 'bool')
# Remove all the rows with all elements True. This ensures at least one element is removed from all existing rows
mask = tf.cast(mask, 'int32') * tf.cast(~tf.reduce_all(mask, axis=1, keepdims=True), 'int32')
mask = tf.cast(mask, 'bool')
# Get the required rows and discard others and reshape
res = tf.boolean_mask(tf.repeat(data, 5, axis=0), mask)
res = tf.reshape(res, [-1,4])
return res
</code></pre>
<p>这就产生了,</p>
<pre><code>tf.Tensor(
[[ 1 10 10 2]
[ 4 10 10 2]
[ 4 1 10 10]
[10 9 10 10]
[10 7 10 10]
[ 8 10 3 5]
[ 6 10 3 5]
[ 6 8 10 5]
[ 6 8 10 3]], shape=(9, 4), dtype=int32)
</code></pre>