Computer vision 如何创建一个在-1和1之间均匀分布值的批次大小张量?
标题大致概括了这一点,我正在尝试实现一个GAN: 如何使用pytorch创建一个批大小为-1和1之间均匀分布值的张量Computer vision 如何创建一个在-1和1之间均匀分布值的批次大小张量?,computer-vision,pytorch,Computer Vision,Pytorch,标题大致概括了这一点,我正在尝试实现一个GAN: 如何使用pytorch创建一个批大小为-1和1之间均匀分布值的张量 def create_latent_batch_vectors(batch_size, latent_vector_size, device): ''' The function creates a random batch of latent vectors with random values distributed uniformly between -1 and 1.
def create_latent_batch_vectors(batch_size, latent_vector_size, device):
'''
The function creates a random batch of latent vectors with random values
distributed uniformly between -1 and 1.
Finally, it moves the tensor to the given ```device``` (cpu or gpu).
The output should have a shape of [batch_size, latent_vector_size].
'''
# maybe torch.distributions.uniform.Uniform() somehow?
return z.to(device)
谢谢 首先让我们定义一个均匀分布,低范围为-1,高范围为+1
dist = torch.distributions.uniform.Uniform(-1,1)
sample_shape = torch.Size([2])
dist.sample(sample_shape)
>tensor([0.7628, 0.3497])
这是形状2的张量(样本形状)。它没有批处理形状。让我们检查一下:
dist.batch_shape
>torch.Size([])
现在让我们使用展开。它实质上是通过扩展批处理形状来创建一个新的分发实例
new_batch_shape = torch.Size([5]) # batch_shape of [5]
expanded_dist = dist.expand(new_batch_shape)
检查:
expanded_dist.batch_shape
>torch.Size([5])
创建形状张量[批次大小,样本形状]
expanded_dist.sample(sample_shape)
>tensor([[0.1592, 0.3404, 0.3520, 0.3038, 0.0393],
[0.9368, 0.0108, 0.5836, 0.6156, 0.6704]])
三种类型的形状定义如下:
- 样本形状描述了分布中独立、相同分布的绘图
- 批处理形状描述独立的、分布不一致的绘图。也就是说,我们可能有一套(不同的)
相同分布的参数化。这使公共服务成为可能
机器学习中的一批示例的用例,每个示例由
它自己的分布
- 事件形状描述分布中单个绘图(事件空间)的形状;它可能是跨维度的