繁体   English   中英

我怎样才能重塑张量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM