Skip to content

Commit e73a442

Browse files
make torchvision as optional dependency for torchscript tests (#3872)
1 parent 1d038a1 commit e73a442

File tree

11 files changed

+74
-22
lines changed

11 files changed

+74
-22
lines changed

.github/workflows/build_linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ jobs:
284284
TRT_VERSION=$(cat dev_dep_versions.yml | grep __tensorrt_version__ | sed 's/__tensorrt_version__: //g' | sed 's/"//g')
285285
bazel build //:libtorchtrt --compilation_mode opt --config=linux
286286
cp bazel-bin/libtorchtrt.tar.gz \
287-
release/tarball/libtorchtrt-${BUILD_VERSION}-tensorrt${TRT_VERSION}-cuda${CU_VERSION:2}-libtorch${PYTORCH_VERSION}-x86_64-linux.tar.gz
287+
release/tarball/libtorchtrt-${BUILD_VERSION}-tensorrt${TRT_VERSION}-cuda${CU_VERSION:2}-libtorch${PYTORCH_VERSION}-${{inputs.architecture}}-linux.tar.gz
288288
return 0
289289
else
290290
if [[ ${{ inputs.is-release-wheel }} == true ]]; then

tests/py/ts/api/test_classes.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import torch
66
import torch_tensorrt as torchtrt
7-
import torchvision.models as models
87
from torch_tensorrt.dynamo.runtime._TorchTensorRTModule import TorchTensorRTModule
98

109

tests/py/ts/api/test_collections.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import torch
77
import torch_tensorrt as torchtrt
8-
import torchvision.models as models
98
from utils import COSINE_THRESHOLD, cosine_similarity
109

1110

tests/py/ts/api/test_e2e_behavior.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
import copy
2+
import importlib.util
23
import unittest
34
from typing import Dict
45

56
import torch
67
import torch_tensorrt as torchtrt
7-
import torchvision.models as models
88
from utils import same_output_format
99

10+
if importlib.util.find_spec("torchvision"):
11+
import torchvision.models as models
12+
1013

1114
@unittest.skipIf(
1215
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
1316
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
1417
)
18+
@unittest.skipIf(
19+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
20+
)
1521
class TestInputTypeDefaultsFP32Model(unittest.TestCase):
22+
1623
def test_input_use_default_fp32(self):
1724
self.model = models.resnet18(pretrained=True).eval().to("cuda")
1825
self.input = torch.randn((1, 3, 224, 224)).to("cuda")
@@ -60,6 +67,9 @@ class TestInputTypeDefaultsFP16Model(unittest.TestCase):
6067
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
6168
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
6269
)
70+
@unittest.skipIf(
71+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
72+
)
6373
def test_input_use_default_fp16(self):
6474
self.model = models.resnet18(pretrained=True).eval().to("cuda")
6575
self.input = torch.randn((1, 3, 224, 224)).to("cuda")
@@ -78,6 +88,9 @@ def test_input_use_default_fp16(self):
7888
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
7989
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
8090
)
91+
@unittest.skipIf(
92+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
93+
)
8194
def test_input_use_default_fp16_without_fp16_enabled(self):
8295
self.model = models.resnet18(pretrained=True).eval().to("cuda")
8396
self.input = torch.randn((1, 3, 224, 224)).to("cuda")
@@ -94,6 +107,9 @@ def test_input_use_default_fp16_without_fp16_enabled(self):
94107
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
95108
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
96109
)
110+
@unittest.skipIf(
111+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
112+
)
97113
def test_input_respect_user_setting_fp16_weights_fp32_in(self):
98114
self.model = models.resnet18(pretrained=True).eval().to("cuda")
99115
self.input = torch.randn((1, 3, 224, 224)).to("cuda")
@@ -113,6 +129,9 @@ def test_input_respect_user_setting_fp16_weights_fp32_in(self):
113129
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
114130
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
115131
)
132+
@unittest.skipIf(
133+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
134+
)
116135
def test_input_respect_user_setting_fp16_weights_fp32_in_non_constuctor(self):
117136
self.model = models.resnet18(pretrained=True).eval().to("cuda")
118137
self.input = torch.randn((1, 3, 224, 224)).to("cuda")

tests/py/ts/api/test_logging.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
import copy
21
import unittest
3-
from typing import Dict
42

5-
import torch
63
import torch_tensorrt as torchtrt
7-
import torchvision.models as models
84

95

106
@unittest.skipIf(

tests/py/ts/api/test_module_fallback.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1-
import copy
1+
import importlib.util
22
import unittest
3-
from typing import Dict
43

54
import torch
65
import torch_tensorrt as torchtrt
7-
import torchvision.models as models
86
from utils import COSINE_THRESHOLD, cosine_similarity
97

8+
if importlib.util.find_spec("torchvision"):
9+
import torchvision.models as models
10+
1011

1112
@unittest.skipIf(
1213
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
1314
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
1415
)
16+
@unittest.skipIf(
17+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
18+
)
1519
class TestModuleFallback(unittest.TestCase):
1620
def test_fallback_resnet18(self):
1721
self.model = models.resnet18(pretrained=True).eval().to("cuda")

tests/py/ts/api/test_operator_fallback.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1-
import copy
1+
import importlib.util
22
import unittest
3-
from typing import Dict
43

54
import torch
65
import torch_tensorrt as torchtrt
7-
import torchvision.models as models
86
from utils import COSINE_THRESHOLD, cosine_similarity
97

8+
if importlib.util.find_spec("torchvision"):
9+
import torchvision.models as models
10+
1011

1112
@unittest.skipIf(
1213
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
1314
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
1415
)
16+
@unittest.skipIf(
17+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
18+
)
1519
class TestFallbackModels(unittest.TestCase):
1620
def test_fallback_resnet18(self):
1721
self.model = models.resnet18(pretrained=True).eval().to("cuda")

tests/py/ts/api/test_ts_backend.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
import copy
2+
import importlib.util
23
import unittest
34
from typing import Dict
45

56
import torch
67
import torch_tensorrt as torchtrt
7-
import torchvision.models as models
88
from utils import COSINE_THRESHOLD, cosine_similarity
99

10+
if importlib.util.find_spec("torchvision"):
11+
import torchvision.models as models
1012

13+
14+
@unittest.skipIf(
15+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
16+
)
1117
class TestCompile(unittest.TestCase):
1218
def test_compile_traced(self):
1319
self.model = models.vgg16(pretrained=True).eval().to("cuda")
@@ -122,6 +128,9 @@ def test_default_device(self):
122128
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
123129
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
124130
)
131+
@unittest.skipIf(
132+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
133+
)
125134
class TestCheckMethodOpSupport(unittest.TestCase):
126135
def test_check_support(self):
127136
module = models.alexnet(pretrained=True).eval().to("cuda")

tests/py/ts/hw/test_multi_gpu.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1+
import importlib.util
12
import unittest
23

34
import torch
45
import torch_tensorrt as torchtrt
5-
import torchvision.models as models
66
from model_test_case import ModelTestCase
77

8+
if importlib.util.find_spec("torchvision"):
9+
import torchvision.models as models
10+
811

912
@unittest.skipIf(
1013
not torchtrt.ENABLED_FEATURES.torchscript_frontend,
1114
"TorchScript Frontend is not available",
1215
)
16+
@unittest.skipIf(
17+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
18+
)
1319
class TestMultiGpuSwitching(ModelTestCase):
1420
def setUp(self):
1521
if torch.cuda.device_count() < 2:
@@ -73,6 +79,9 @@ def test_compile_script(self):
7379
not torchtrt.ENABLED_FEATURES.torchscript_frontend,
7480
"TorchScript Frontend is not available",
7581
)
82+
@unittest.skipIf(
83+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
84+
)
7685
class TestMultiGpuSerializeDeserializeSwitching(ModelTestCase):
7786
def setUp(self):
7887
if torch.cuda.device_count() < 2:
@@ -148,9 +157,10 @@ def test_suite():
148157
return suite
149158

150159

151-
suite = test_suite()
160+
if importlib.util.find_spec("torchvision"):
161+
suite = test_suite()
152162

153-
runner = unittest.TextTestRunner()
154-
result = runner.run(suite)
163+
runner = unittest.TextTestRunner()
164+
result = runner.run(suite)
155165

156-
exit(int(not result.wasSuccessful()))
166+
exit(int(not result.wasSuccessful()))

tests/py/ts/integrations/test_to_backend_api.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# type: ignore
2+
import importlib.util
23
import unittest
34

45
import torch
56
import torch_tensorrt as torchtrt
6-
import torchvision.models as models
77
from utils import COSINE_THRESHOLD, cosine_similarity
88

9+
if importlib.util.find_spec("torchvision"):
10+
import torchvision.models as models
11+
912

1013
@unittest.skipIf(
1114
not torchtrt.ENABLED_FEATURES.torchscript_frontend,
@@ -15,6 +18,9 @@
1518
torchtrt.ENABLED_FEATURES.tensorrt_rtx,
1619
"aten::adaptive_avg_pool2d is implemented via plugins which is not supported for tensorrt_rtx",
1720
)
21+
@unittest.skipIf(
22+
not importlib.util.find_spec("torchvision"), "torchvision not installed"
23+
)
1824
class TestToBackendLowering(unittest.TestCase):
1925
def setUp(self):
2026
self.input = torch.randn((1, 3, 300, 300)).to("cuda")

0 commit comments

Comments
 (0)