qiwei_ji
qiwei_ji
Dear sir,I found a mistake when I use the MobileNetV2 model. You can print the architecture and check it. The fisrt layer has a output of [32,226] , which expects...
增添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。
## Description add argsort and test case( not test yet due to device) Issue/s resolved: #777 ## Changes proposed: - add argsort and testcase ## Type of change - New...
## Summary 目标是解决一个高精度的模拟计算任务,用神经网络拟合复杂方程的解。 代码部分的工作包括:1.oneflow重写训练代码;2.oneflow实现LBFGS优化算法,对标torch.optim中的lbfgs优化算法。 训练任务是相同数据训练一个10层左右的Linear网络。 目前出现问题是,同样的checkpoint,cpu版本的oneflow目前已调试到精度为99%,cuda版本上最低为50%左右(波动较大)。在cuda上计算时小数点四位之后和cpu上不对齐,在LBFGS优化算法中会经由不同的if-else分支放大,多轮训练后会滚雪球累加。 用了官方上手的MNIST的代码也做了同样的测试,同样的checkpoint,5轮测试后,精度差大概在小数点后5位左右,在第一轮grad后即开始出现误差。官方代码为Linear网络,改成卷积网络后也有类似问题,但linear上误差更明显。 此外,torch上也有类似问题,在MNIST上同样的算子在cuda中和cpu上仅有些微精度损失。在模拟计算任务中,cpu上accuracy为99%,cuda上为70%左右。不同torch和cuda版本会有不同程度上的精度以及accuracy损失。 ## Code to reproduce bug Please post a minimal example to repro the bug. GitHub Gist or repo is highly recommended. ##...
I found this part check parameter (ret_unique_id != 0) for twice. Maybe it should check ret_domain here I guess.
It has the duplicate content in line 488 in the same file. (line 488 and 509: {"vsmi_dev_memory_reserved_pages_get", {{kDevMemPageBadFName}, {}}}, )