oneflow icon indicating copy to clipboard operation
oneflow copied to clipboard

OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.

Results 591 oneflow issues
Sort by recently updated
recently updated
newest added

如题 最小复现代码: ``` >>> oneflow.__version__ '0.8.0.dev20220705+cu112' ``` ``` import torch import oneflow as flow x_torch = torch.randn(5,5) x_flow = flow.tensor(x_torch.numpy()) # BUG: inplace x_torch[:,:2] += x_torch[:,4:] x_flow[:,:2] += x_flow[:,4:] #...

bug
community

实现google量化感知训练文章中提到的,训练过程中融合 conv 和 bn 的模块 `QatFuseConvBN`。 为了简化导出 onnx 的过程,这个模块内部包含了三个状态,首先除了 `nn.Module` 自带的 `self.training` 成员,还额外给该模块添加了一个 `self.is_freezed` 的成员,用于指定是否bn 的参数真正 融合进了 conv 的参数中,下面具体解释三个状态代表什么意思: ### 状态一 ,`self.self.is_freezed=False, self.training = True` 此时是在对模型做量化训练,训练过程中首先对该模块的输入做模拟量化,然后通过一个卷积模块得到输出,接着计算输出的均值和方差,然后动态融合bn和conv的参数,的到新的折叠了bn的conv参数,然后对该参数做模拟量化,最后将模拟量化后的参数和输入重新输入到一个卷积操作中。 ### 状态二,`self.self.is_freezed=False, self.training =...

feature
eager
test
api

## Summary Wrong gradient computation for oneflow.nn.init.constant_. Theoretically, the gradient of constant initializer should always be 0. However, the calculated gradient is always 1. ``` x = oneflow.tensor([1.]).requires_grad_() output =...

bug
community

## Summary `broadcast_like` op throw std::bad_alloc when x.dim > like.dim ## Code to reproduce bug ``` import oneflow as flow a = flow.randn(1, 1) b = flow.randn(2, 2, 2) c...

bug
community

## Summary oneflow.nn.Fold may produce inconsistent results when runned w/ and w/o requires_grad_(True). The following code snippet produces count != 0 ``` count = 0 input = oneflow.rand(2, 72, 16,dtype=oneflow.float64).cuda()...

bug
community

增添oneflow.optim.LBFGS优化算法,在0.8.0版本编译成功,可直接调用。调用方法为 from oneflow.optim import LBFGS,具体有哪些参数可以看一下源代码,简单使用的话只需要传入网络的parameters就可以了。 简单的测试代码、说明文档这周内会完成添加。 目前只有torch正式实现过该优化算子,测试了几个CV分类任务性能基本对齐torch。由于这个优化算法本身比较特殊,不知道大概需要提交哪些东西,有问题的话还麻烦指点一下。 参数里有个line_search_fn选项,建议选择“strong_wolfe”。该选项主要作用是确定步长的选择方案,若是none的话则固定为1,“strong wolfe”情况下会动态选取步长。 torch版本若是该参数选择"none"的话,很难实现正常优化,oneflow版本上也有类似问题。推测大概率是该优化方案太过复杂,固定参数的话对优化限制太大。 顺便cpp版本和cuda版本可能有点难实现?torch目前只有cpp和python版本。cpp版本基本上单纯是为了torch c里面能调用,所以单独写了个版本,也是各种在调torch c的包。估计这也是为什么不在python版本里写接口调用c的原因。。。 然后_generate_conf_for_graph,clip操作,多机多卡等还待测试。不过由于基本上所有运算都是从python层面调用其他算子,问题应该不大。

添加LBFGS优化方法 对标torch.optim.LBFGS 目前应用于天枢框架下某力学计算任务,指标基本一致,应该能适用于大部分任务上 不过torch本身对这个算子的实现并不是很好,test_case里面有很多的if_else分支没有跑到 先占坑,算法大体写完了,接口和测试还没有写好,过两天编译过了会陆续上传。实现过程中碰到很多问题,所以开了个issue。

建议提供类似pytorch的share_memory相关接口。Pytorch: https://pytorch.org/docs/stable/generated/torch.Tensor.share_memory_.html使用到此功能的算法: https://github.com/cvg/nice-slam/blob/96bb7be8e309a60e2b39515e50ea5cea6efbe449/src/NICE_SLAM.py#L90 此算法使用多进程共享module的方式,添加share_memory接口有助于使用这种方式的算法在oneflow上开发。

## This PR is done: - [x] 在 global 单侧代码中,存在 m.to_global(placement, sbp) 的情况(m 是 nn.module),Graph 不能处理这种 Module type。所以在 autotest 中特化: ```python elif oneflow.__name__ == "to_global": test_g_res = oneflow_res ``` -...

bug
test
graph
global

## This PR is done: - [x] 完善 graph global autotest,既调用 to() 时,需要通过 placement.type 获得设备类型。 - [x] 打开 where op 的 graph global test。

bug
test
graph
global