我最终迁移到了TF 2.1,并且我正在尝试将我的代码移植到原生TF 2.1。所以这里有一个问题:如何将不同等级的粗糙张量重塑为一维张量?本质上,我有一组权重矩阵,例如。[3,3,1,32], [32], [21632,20], [20], [20,10], [10] (这些是形状,不是值),我想把整个怪物展平成一个一维张量。做这件事最有效的方法是什么?更好的是,我如何编写一个函数来展平任意长度的任意形状参差不齐的张量?
目前,我正在使用以下解决方案,但我怀疑Python list可能会极大地降低速度:
gradlist = []
for g in gradients:
gradlist.append(tf.reshape(g, [-1]))
grad_vector = tf.concat(gradlist, 0)发布于 2020-05-08 03:44:44
您可以使用numpy hstack轻松地展平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]https://stackoverflow.com/questions/61659707
复制相似问题