mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/60003 **Summary** `infer_concrete_type_builder` in `_recursive.py` assumes `__constants__` is a `set` if it exists as an attribute on the module being scripted. Instead, it should create a set out of whatever `__constants__` is. **Test Plan** Ran code from the issue. **Fixes** This commit fixes #59947. Test Plan: Imported from OSS Reviewed By: pbelevich Differential Revision: D29174243 Pulled By: SplitInfinity fbshipit-source-id: aeb8bded80038da35478714b6a697a766ac447f5
32 lines
1006 B
Python
32 lines
1006 B
Python
import torch
|
|
import os
|
|
import sys
|
|
from torch.testing._internal.jit_utils import JitTestCase
|
|
|
|
# Make the helper files in test/ importable
|
|
pytorch_test_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
|
sys.path.append(pytorch_test_dir)
|
|
|
|
if __name__ == '__main__':
|
|
raise RuntimeError("This test file is not meant to be run directly, use:\n\n"
|
|
"\tpython test/test_jit.py TESTNAME\n\n"
|
|
"instead.")
|
|
|
|
class TestModules(JitTestCase):
|
|
def test_script_module_with_constants_list(self):
|
|
"""
|
|
Test that a module that has __constants__ set to something
|
|
that is not a set can be scripted.
|
|
"""
|
|
|
|
# torch.nn.Linear has a __constants__ attribute defined
|
|
# and intialized to a list.
|
|
class Net(torch.nn.Linear):
|
|
x: torch.jit.Final[int]
|
|
|
|
def __init__(self):
|
|
super().__init__(5, 10)
|
|
self.x = 0
|
|
|
|
self.checkModule(Net(), (torch.randn(5),))
|