python - Tensorflow 中是否有用于改组或置换张量的内置函数?

标签 python numpy tensorflow

沿两个轴(第一行,然后是列,反之亦然)排列张量的最佳方法是什么?我应该定义一个 py_func并使用 numpy 或使用张量转换函数之一,如 tf.slice - 我不知道这是否可能。

为了使用 numpy 实现这一点,我通常会执行以下操作:

>>> arr = np.arange(9).reshape([3,3])
>>> arr
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> col_perm = np.random.permutation(arr.shape[1])
>>> col_perm
array([2, 1, 0])
>>> row_perm = np.random.permutation(arr.shape[0])
>>> row_perm
array([2, 0, 1])
>>> shuffled_arr = arr[row_perm,:][:,col_perm]
>>> shuffled_arr
array([[8, 7, 6],
       [2, 1, 0],
       [5, 4, 3]])

最佳答案

这是一个与 tf.random.shuffle() 完全相同的快速功能但也需要一个轴尺寸

def tf_shuffle_axis(value, axis=0, seed=None, name=None):
    perm = list(range(tf.rank(value)))
    perm[axis], perm[0] = perm[0], perm[axis]
    value = tf.random.shuffle(tf.transpose(value, perm=perm))
    value = tf.transpose(value, perm=perm)
    return value

关于python - Tensorflow 中是否有用于改组或置换张量的内置函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39875674/

相关文章:

python - 如何使用 Google Translate Python API 翻译 HTML

python - Django 中的线程同步

python - SCIPY 线性规划方案中缩放矩阵变量的最佳方法

tensorflow - 隐藏状态张量与返回张量的顺序不同

python-3.x - 比较 tensorflow variables.index 和 variables.data 文件

python - 如何根据选项卡的大小用字符串中的空格替换自定义选项卡?

python - 使用 Python 并行获取图像并异步保存它们

python - 如何解释 scipy.stats.probplot 结果?

python - 高效切片三角稀疏矩阵

android - Tensorflow 中的 'Const Op' 是什么?