pytorch v0.3.0修复Bug汇总

Song1622 次浏览0个评论2018年07月11日

[attach]33[/attach] [b]Torch[/b] [list] []修复CUDA延迟初始化,以便在调用时不触发torch.manual_seed(而是在CUDA初始化时调用排队并运行)[/] [/list]

[b]张量[/b] [list] []如果x是2D,x[[0, 3],]则需要触发高级索引。尾随的逗号不再需要,你可以做x[[0, 3]][/] []x.sort(descending=True)用于错误地拒绝张量。修正了在参数检查逻辑中允许这个错误。[/] []numpy输入的张量构造函数: torch.DoubleTensor(np.array([0,1,2], dtype=np.float32))火炬现在将数组的内容复制到适当类型的存储中。如果类型匹配,它将共享底层数组(no-copy),用等价的语义来用另一个张量初始化一个张量。在CUDA上,torch.cuda.FloatTensor(np.random.rand(10,2).astype(np.float32))现在将通过复制工作。[/] []ones_like而zeros_like现在创建相同的设备上张量与原张量[/] [] torch.multinomial在CPU上将重新形成prob_dist就地输入。修正了这个问题,以确保prob_dist调用后输入的形状不变multinomial[/] []expand并expand_as允许扩展一个空张量到另一个空张量[/] []当[..., None, ...]被赋予时(即,在指定索引中的新轴放置),PyTorch与NumPy具有不同的行为。在所有情况下这与NumPy一致。[/] []修复指数分布实现从不采样无穷大 - cuRAND返回(0,1][/] []torch的.HalfTensor支持numpy()和torch.from_numpy[/] []添加额外的大小检查torch.scatter[/] []修复torch.tril和torch.triuGPU上的存储偏移张量(将返回不正确的结果)。[/] []修复CUDA qr分解中的内存泄漏[/] []修复THCUNN内核中的流识别问题[/] []修复kwargs解析torch.topk[/] []固定random_在CPU(以前的最大值为2 ^ 32)的DoubleTensor和LongTensor[/] []修正ZeroDivisionError: float division by zero打印某些张量时[/] []torch.gels当m > n在CPU上发生截断错误并返回不正确的结果时。固定。[/] []在tensor.numpy()中添加一个检查,检查是否没有传递位置参数[/] []在将张量移至CUDA固定内存之前,添加了一个检查以确保它是 contiguous[/] []any并all在CPU上的空张量(以前出错)[/] []修复symeig大型矩阵的CUDA。缺点是没有足够的空间分配给工作区,导致一些未定义的行为。[/] []改进的数值稳定性torch.var,并torch.std通过使用维尔福德的算法[/] []随机数生成器返回uniform具有不一致边界的样本(在cpu实现中不一致并运行到cublas bug)。现在,所有uniform采样的数字将[0, 1)在所有类型和设备的范围内返回[/] []修复torch.svd大型CUDA张量中的不段错误(修正了岩浆绑定中的溢出错误)[/] []允许空索引张量index_select(而不是错误)[/] []在此之前eigenvector=False,symeig为特征向量返回一些未知值。现在我们把它们归零。[/] [/list]

[b]sparse[/b]

   修复了在cadd中稀疏张量的合并coalesced计算错误    修复.type()不转换索引张量。 *   修复在角落情况下GPU上的稀疏张量聚合

autograd

   修复了在使用requires_grad = False的叶变量上向后调用时的崩溃问题    修正type()非默认GPU输入的变量。    当torch.norm返回时0.0,渐变是NaN。我们现在使用梯度0.0,所以梯度是0.0。    使用高级索引和更高阶梯度修正正确性问题    torch.prod由于类型错误的原因,GPU的落后是失败的。    先进的变量索引现在允许索引是一个LongTensor支持的变量 *   Variable.cuda()和Tensor.cuda()在kwargs选项中是一致的

Optim

*   torch.optim.lr_scheduler现在默认导入。

NN

   现在支持从nn.Module的转发函数返回字典(用于引发错误)    什么时候register_buffer("foo", ...)被调用,并且self.foo已经存在,那么不是默默地失败,现在引发一个KeyError    修复了缺少_data_ptrs属性的旧RNN/LSTM检查点的加载。    nn.Embedding使用该max_norm选项时出现严重错误。这现在已经修复了。    当使用该max_norm选项时,传入的索引被写入(由底层实现)。为了解决这个问题,将索引的克隆传递给renorm内核。    F.affine_grid现在可以采取非连续的投入    EmbeddingBag现在可以接受1D和2D输入。    在CuDNN BatchNorm中,批次大于131070的CuDNN错误解决方法    修复nn.init.orthogonal在行<cols时正确返回正交向量    如果BatchNorm总共只有1每个通道的值,则在训练模式下产生错误。    使cuDNN绑定尊重当前的cuda流(以前引起不连贯的错误)    当gradOutput是零跨度张量时,修复grid_sample    当反射填充超出张量界限时修复分段错误。    如果LogSoftmax只有一个元素,-inf则返回。现在这个正确的返回0.0    修复pack_padded_sequence接受任意大小的输入(不只是3D输入)    检测cuDNN RNN flatten_parameters中的指针别名,并避免该路径。    固定ELU更高阶梯度时适用    解决半精确度的CuDNN RNN错误 *   防止数值的问题poisson_nll_loss时,log_input=False通过增加一个小小量

分布式和多GPU

   只允许kwargs输入DataParallel。这曾经失败:n = nn.DataParallel(Net()); out = n(input=i)    DistributedDataParallel在python2中正确计算num_samples    当使用每个进程1-GPU时,修复DistributedDataParallel的情况。    修复了DataParallel以指定不包含GPU-0的GPU    分布式数据并行的退出不会出错,守护进程标志被设置。    修复DistributedDataParallel中的一个错误,当模型没有时buffers(以前引起非连贯错误)    修复__get_state__功能DistributedDataParallel(没有返回)    当GIL和CudaFreeMutex互相挨饿时,修复NCCL绑定中的死锁

其他

   model.zoo.load_url现在首先尝试使用requests library,然后回落到urllib    解决错误,当defaultcollat​​e传递的集合numpy.str

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...

    公告提示

    Pytorch是Facebook的AI研究团队发布了一个Python工具包,是Python优先的深度学习框架。作为numpy的替代品;使用强大的GPU能力,提供最大的灵活性和速度,实现了机器学习框架Torch在Python语言环境的执行,基于python且具备强大GPU加速的张量和动态神经网络。