热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何随机混合两个PyTorch张量

我有两个形状相同的PyTorch张量A和B,我想创建一个形状相同的“随机混合”张量C,其中C[i,]=A[i,]概率为alpha或B[i,]概率

我有两个形状相同的 PyTorch 张量 A 和 B,我想创建一个形状相同的“随机混合”张量 C,其中 C[i,...] = A[i,...] 概率为 alpha或 B[i,...] 概率为 1-alpha。有没有一些 Pythonic 的方式来紧凑地做到这一点?

回答


考虑使用torch.bernoulli来创建掩码张量:

import torch
prob = 0.8
x = torch.full((2, 6, 3), 10.2, dtype=torch.float)
y = torch.full((2, 6, 3), -1.6, dtype=torch.float)
mask = torch.bernoulli(torch.full(x.shape, prob)).int()
reverse_mask = torch.ones(x.shape).int() - mask
result = x * mask + y * reverse_mask

result 就是现在:

[[[10.2000, 10.2000, 10.2000],
[10.2000, -1.6000, 10.2000],
[10.2000, 10.2000, -1.6000],
[-1.6000, 10.2000, -1.6000],
[10.2000, 10.2000, 10.2000],
[10.2000, 10.2000, 10.2000]],
[[10.2000, 10.2000, -1.6000],
[10.2000, 10.2000, 10.2000],
[10.2000, 10.2000, -1.6000],
[10.2000, -1.6000, 10.2000],
[-1.6000, 10.2000, 10.2000],
[10.2000, 10.2000, 10.2000]]]

祝你好运!






推荐阅读
author-avatar
justmoon999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有