以下是我的回答:如何在PyTorch中随机设置Tensor每行中固定数量的元素 假设你想要一个维度为n X d的矩阵,其中每行中正好25%的值为1,其余为0,desired_tensor将得到你想要的结果:
n = 2
d = 5
rand_mat = torch.rand(n, d)
k = round(0.25 * d) # For the general case change 0.25 to the percentage you need
k_th_quant = torch.topk(rand_mat, k, largest = False)[0][:,-1:]
bool_tensor = rand_mat <= k_th_quant
desired_tensor = torch.where(bool_tensor,torch.tensor(1),torch.tensor(0))
2条答案
按热度按时间beq87vna1#
可以使用
rand
在0,1
之间生成一个随机Tensor,并将其与0.25
进行比较:字符串
输出量:
型
sh7euo9m2#
以下是我的回答:如何在PyTorch中随机设置Tensor每行中固定数量的元素
假设你想要一个维度为
n X d
的矩阵,其中每行中正好25%的值为1,其余为0,desired_tensor
将得到你想要的结果:字符串