gpt4 book ai didi

python - 如何从给定的二维张量中提取 n 个一维张量?

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:35 26 4
gpt4 key购买 nike

我有一个二维张量:

a = [[6, 5, 4], [3, 2, 1], [1, 2, 3], [4, 5, 6], [7, 8, 1], [5, 2, 6]]

我想随机并且不重复提取 K 个一维张量。接下来,将它们组合到另一个二维张量 b:

b = [5, 2, 6], [3, 2, 1], [6, 5, 4]

我没有找到任何这样做的功能,所以我按照下面的方式实现它:

rand_var_1 = tf.random_crop(a, size=[1, 3], seed=1)
rand_var_2 = tf.random_crop(a, size=[1, 3], seed=2)
rand_var_3 = tf.random_crop(a, size=[1, 3], seed=3)
rand_var_4 = tf.random_crop(a, size=[1, 3], seed=4)
b = tf.concat(0, [rand_var_1, rand_var_2, rand_var_3, rand_var_4])

b_rs = sess.run(b)
print "b_rs:\n",b_rs

但结果具有重复的一维张量,例如:

bb=[[5, 2, 6], [3, 2, 1], [5, 2, 6]]

有人可以帮我解决这个问题吗?

最佳答案

下面应该可以工作,基本上生成一个长度为数组 a 的数字数组,将它们打乱并使用第一个 K 索引并获取行,

import numpy as np

#Number of samples
K = 3

#Array
a =[[6, 5, 4], [3, 2, 1], [1, 2, 3], [4, 5, 6], [7, 8, 1], [5, 2, 6]]
N = len(a)

#Get an array on size of a, shuffle and take first K to use
#permutation used as suggested by @EelcoHoogendoorn
indices = np.random.permutation(N)

#Take the first k samples
samples = indices[:K]
b = [a[i] for i in samples]

#Print
print('a = ', a)
print('b = ', b)

关于python - 如何从给定的二维张量中提取 n 个一维张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36640174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com