[英]How can I reshape the tensor
tensor([[17, 0],
[93, 0],
[ 4, 0],
[72, 0],
[83, 0],
[67, 0],
[34, 0],
[21, 0],
[19, 0])
我想把这个二维数组的tensor去掉0,变成一维数组。
我怎样才能用下面的张量制作这个张量?
tensor([[17],
[93],
[4],
[72],
[83],
[67],
[34],
[21],
[19])
假设张量是一个numpy
数组。
首先,使用x= x.flatten()
展平矩阵
然后使用x = x[x!=0]
删除所有出现的zeros
然后使用x = np.reshape(x, ( -1, x.shape[0] ))
在 2D 中重塑数组
这 ( x
) 会返回给你:
array([[17, 93, 4, 72, 83, 67, 34, 21, 19]])
在Tensorflow中,您可以简单地使用boolean_mask
:
import tensorflow as tf
tensor = tf.constant([[17, 0],
[93, 0],
[ 4, 0],
[72, 0],
[83, 0],
[67, 0],
[34, 0],
[21, 0],
[19, 0]])
tensor = tf.boolean_mask(tensor, tf.cast(tensor, dtype=tf.bool), axis=0)
tf.Tensor([17 93 4 72 83 67 34 21 19], shape=(9,), dtype=int32)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.