We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
目前单测没有依赖Pytorch,一些Module不好自动求导,导致单测写起来比较困难。然后通过讨论决定我们的单测可以依赖Pytorch,然后大老师基于Pytorch写了一个自动测试框架 ,有如下特点:
根据 pytorch api 的 type annotations 自动生成测试数据并测试和 pytorch 的一致性,如 nn.Conv2d 的 kernel_size 参数的类型是 _size_2_t = Union[int, Tuple[int, int]],用户只需要用 random(1, 4) 指定数据的范围在 [1, 4) 之间,就可以自动生成 2、(1, 3) 等这样的测试数据。
random(1, 4)
nn.Conv2d 的完整写法:
test_module_against_pytorch( test_case, "nn.Conv2d", extra_generators={ "input": random_4d_tensor(channels=4), "in_channels": constant(4), "out_channels": random(1, 129), "kernel_size": random(1, 4), "stride": random(1, 4), "padding": random(1, 5), "dilation": random(1, 5), "groups": random(1, 5), "padding_mode": constant("zeros"), }, n=10, )
自动生成的一些 attr:
attr = {'dilation': 1, 'stride': (2, 1), 'out_channels': 122, 'kernel_size': 2, 'in_channels': 4, 'bias': True, 'padding_mode': 'zeros'} attr = {'groups': 3, 'out_channels': 11, 'kernel_size': 1, 'in_channels': 4, 'bias': False, 'padding': 2, 'padding_mode': 'zeros'} attr = {'groups': 1, 'dilation': 4, 'stride': (2, 3), 'out_channels': 17, 'kernel_size': 3, 'in_channels': 4, 'bias': False, 'padding': (4, 3), 'padding_mode': 'zeros'} attr = {'dilation': 4, 'stride': (1, 2), 'out_channels': 70, 'kernel_size': 1, 'in_channels': 4, 'padding': 1} attr = {'dilation': (3, 1), 'stride': (1, 3), 'out_channels': 110, 'kernel_size': (3, 2), 'in_channels': 4, 'bias': False, 'padding': (3, 1)} attr = {'stride': 3, 'out_channels': 34, 'kernel_size': 2, 'in_channels': 4, 'bias': True, 'padding_mode': 'zeros'} attr = {'groups': 1, 'stride': (2, 1), 'out_channels': 101, 'kernel_size': (2, 1), 'in_channels': 4, 'bias': False, 'padding_mode': 'zeros'} attr = {'groups': 3, 'dilation': (3, 2), 'out_channels': 116, 'kernel_size': (1, 1), 'in_channels': 4, 'padding_mode': 'zeros'} attr = {'groups': 3, 'dilation': 2, 'stride': 1, 'out_channels': 67, 'kernel_size': 3, 'in_channels': 4} attr = {'groups': 2, 'stride': 2, 'out_channels': 123, 'kernel_size': (2, 1), 'in_channels': 4, 'bias': True, 'padding': 3, 'padding_mode': 'zeros'} attr = {'stride': (2, 1), 'out_channels': 91, 'kernel_size': (3, 2), 'in_channels': 4, 'padding': 1, 'padding_mode': 'zeros'} attr = {'groups': 1, 'dilation': (2, 1), 'stride': 1, 'out_channels': 12, 'kernel_size': 3, 'in_channels': 4, 'bias': True, 'padding': (1, 1), 'padding_mode': 'zeros'} attr = {'groups': 1, 'out_channels': 73, 'kernel_size': 1, 'in_channels': 4, 'padding': (4, 1), 'padding_mode': 'zeros'} attr = {'groups': 4, 'dilation': 4, 'out_channels': 108, 'kernel_size': (2, 2), 'in_channels': 4, 'bias': True, 'padding': (2, 2), 'padding_mode': 'zeros'}
注,最新支持了持测试flow.xxx 和 Tensor.xxx方法的测试,同时也支持C++导出的Python接口的测试,见 PR 5386
这样就可以大大降低我们写单测的复杂度并且测试的参数可以更加全面,并且也可以同时测试接口的一致性。现在我们需要基于这个自动测试框架重构Module的单测。
中。暂定7月1-7月15日重构完。
张晓雨,梁德澎,姚迟,赵露阳,郑泽康,任天和,李春游,刘沛宏,张申,也欢迎之江小伙伴们认领
特别注意,硬编码的单测可以直接去掉,但numpy模拟的测试不需要去掉,直接在原始文件后面增加这次的自动测试方法即可。
可以参考这个PR来写:#5436
Pytorch版本不能用1.9.1
oneflow.experimental.flatten
*args, **kwargs
The text was updated successfully, but these errors were encountered:
BBuf
No branches or pull requests
背景
目前单测没有依赖Pytorch,一些Module不好自动求导,导致单测写起来比较困难。然后通过讨论决定我们的单测可以依赖Pytorch,然后大老师基于Pytorch写了一个自动测试框架 ,有如下特点:
根据 pytorch api 的 type annotations 自动生成测试数据并测试和 pytorch 的一致性,如 nn.Conv2d 的 kernel_size 参数的类型是 _size_2_t = Union[int, Tuple[int, int]],用户只需要用
random(1, 4)
指定数据的范围在 [1, 4) 之间,就可以自动生成 2、(1, 3) 等这样的测试数据。nn.Conv2d 的完整写法:
自动生成的一些 attr:
注,最新支持了持测试flow.xxx 和 Tensor.xxx方法的测试,同时也支持C++导出的Python接口的测试,见 PR 5386
这样就可以大大降低我们写单测的复杂度并且测试的参数可以更加全面,并且也可以同时测试接口的一致性。现在我们需要基于这个自动测试框架重构Module的单测。
优先级
中。暂定7月1-7月15日重构完。
项目负责人
张晓雨,梁德澎,姚迟,赵露阳,郑泽康,任天和,李春游,刘沛宏,张申,也欢迎之江小伙伴们认领
特别注意,硬编码的单测可以直接去掉,但numpy模拟的测试不需要去掉,直接在原始文件后面增加这次的自动测试方法即可。
可以参考这个PR来写:#5436
Pytorch版本不能用1.9.1
任务分工表
oneflow.experimental.flatten
冲突*args, **kwargs
签名The text was updated successfully, but these errors were encountered: