展平TF2.1中非常不规则的张量

2024-06-17 09:19:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我终于迁移到了TF2.1,我正在尝试将代码移植到本机TF2.1。所以这里有一个问题:如何将一个不同等级的参差不齐的张量重塑成一维张量?本质上,我有一组权重矩阵,例如[3,3,1,32], [32], [21632,20], [20], [20,10], [10](这些是形状,不是值),我想把整个怪物展平成一维张量。最有效的方法是什么?更好的是,我如何编写一个函数来展平任意长度、任意形状粗糙度的张量

目前,我正在使用以下解决方案,但我怀疑Python列表可能会大大降低速度:

gradlist = []
for g in gradients:
    gradlist.append(tf.reshape(g, [-1]))
grad_vector = tf.concat(gradlist, 0)

Tags: 方法函数代码列表tf矩阵解决方案权重
1条回答
网友
1楼 · 发布于 2024-06-17 09:19:45

可以使用numpyhstack轻松展平numpy阵列,这应该更快

参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.hstack.html

代码示例:

import numpy as np

gradients = np.array([[1], [1,2,3], [4,5]])

print(np.hstack(gradients).shape)

print(np.hstack(gradients))

输出:

(6,)
[1 1 2 3 4 5]

相关问题 更多 >