Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
chenpangpang
diffusers
Commits
c4ef1efe
Unverified
Commit
c4ef1efe
authored
Oct 28, 2022
by
Patrick von Platen
Committed by
GitHub
Oct 28, 2022
Browse files
[Tests] Better prints (#1043)
parent
8d6487f3
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
21 deletions
+37
-21
src/diffusers/utils/__init__.py
src/diffusers/utils/__init__.py
+9
-1
src/diffusers/utils/testing_utils.py
src/diffusers/utils/testing_utils.py
+8
-0
tests/models/test_models_unet_2d.py
tests/models/test_models_unet_2d.py
+12
-12
tests/models/test_models_vae.py
tests/models/test_models_vae.py
+8
-8
No files found.
src/diffusers/utils/__init__.py
View file @
c4ef1efe
...
...
@@ -40,7 +40,15 @@ from .outputs import BaseOutput
if
is_torch_available
():
from
.testing_utils
import
floats_tensor
,
load_image
,
parse_flag_from_env
,
require_torch_gpu
,
slow
,
torch_device
from
.testing_utils
import
(
floats_tensor
,
load_image
,
parse_flag_from_env
,
require_torch_gpu
,
slow
,
torch_all_close
,
torch_device
,
)
logger
=
get_logger
(
__name__
)
...
...
src/diffusers/utils/testing_utils.py
View file @
c4ef1efe
...
...
@@ -34,6 +34,14 @@ if is_torch_available():
torch_device
=
"mps"
if
(
mps_backend_registered
and
torch
.
backends
.
mps
.
is_available
())
else
torch_device
def
torch_all_close
(
a
,
b
,
*
args
,
**
kwargs
):
if
not
is_torch_available
():
raise
ValueError
(
"PyTorch needs to be installed to use this function."
)
if
not
torch
.
allclose
(
a
,
b
,
*
args
,
**
kwargs
):
assert
False
,
f
"Max diff is absolute
{
(
a
-
b
).
abs
().
max
()
}
. Diff tensor is
{
(
a
-
b
).
abs
()
}
."
return
True
def
get_tests_dir
(
append_path
=
None
):
"""
Args:
...
...
tests/models/test_models_unet_2d.py
View file @
c4ef1efe
...
...
@@ -21,7 +21,7 @@ import unittest
import
torch
from
diffusers
import
UNet2DConditionModel
,
UNet2DModel
from
diffusers.utils
import
floats_tensor
,
require_torch_gpu
,
slow
,
torch_device
from
diffusers.utils
import
floats_tensor
,
require_torch_gpu
,
slow
,
torch_all_close
,
torch_device
from
parameterized
import
parameterized
from
..test_modeling_common
import
ModelTesterMixin
...
...
@@ -156,7 +156,7 @@ class UNetLDMModelTests(ModelTesterMixin, unittest.TestCase):
model_normal_load
.
eval
()
arr_normal_load
=
model_normal_load
(
noise
,
time_step
)[
"sample"
]
assert
torch
.
allclose
(
arr_accelerate
,
arr_normal_load
,
rtol
=
1e-3
)
assert
torch
_
all
_
close
(
arr_accelerate
,
arr_normal_load
,
rtol
=
1e-3
)
@
unittest
.
skipIf
(
torch_device
!=
"cuda"
,
"This test is supposed to run on GPU"
)
def
test_memory_footprint_gets_reduced
(
self
):
...
...
@@ -207,7 +207,7 @@ class UNetLDMModelTests(ModelTesterMixin, unittest.TestCase):
expected_output_slice
=
torch
.
tensor
([
-
13.3258
,
-
20.1100
,
-
15.9873
,
-
17.6617
,
-
23.0596
,
-
17.9419
,
-
13.3675
,
-
16.1889
,
-
12.3800
])
# fmt: on
self
.
assertTrue
(
torch
.
allclose
(
output_slice
,
expected_output_slice
,
rtol
=
1e-3
))
self
.
assertTrue
(
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
rtol
=
1e-3
))
class
UNet2DConditionModelTests
(
ModelTesterMixin
,
unittest
.
TestCase
):
...
...
@@ -287,7 +287,7 @@ class UNet2DConditionModelTests(ModelTesterMixin, unittest.TestCase):
named_params
=
dict
(
model
.
named_parameters
())
named_params_2
=
dict
(
model_2
.
named_parameters
())
for
name
,
param
in
named_params
.
items
():
self
.
assertTrue
(
torch
.
allclose
(
param
.
grad
.
data
,
named_params_2
[
name
].
grad
.
data
,
atol
=
5e-5
))
self
.
assertTrue
(
torch
_
all
_
close
(
param
.
grad
.
data
,
named_params_2
[
name
].
grad
.
data
,
atol
=
5e-5
))
class
NCSNppModelTests
(
ModelTesterMixin
,
unittest
.
TestCase
):
...
...
@@ -377,7 +377,7 @@ class NCSNppModelTests(ModelTesterMixin, unittest.TestCase):
expected_output_slice
=
torch
.
tensor
([
-
4836.2231
,
-
6487.1387
,
-
3816.7969
,
-
7964.9253
,
-
10966.2842
,
-
20043.6016
,
8137.0571
,
2340.3499
,
544.6114
])
# fmt: on
self
.
assertTrue
(
torch
.
allclose
(
output_slice
,
expected_output_slice
,
rtol
=
1e-2
))
self
.
assertTrue
(
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
rtol
=
1e-2
))
def
test_output_pretrained_ve_large
(
self
):
model
=
UNet2DModel
.
from_pretrained
(
"fusing/ncsnpp-ffhq-ve-dummy-update"
)
...
...
@@ -402,7 +402,7 @@ class NCSNppModelTests(ModelTesterMixin, unittest.TestCase):
expected_output_slice
=
torch
.
tensor
([
-
0.0325
,
-
0.0900
,
-
0.0869
,
-
0.0332
,
-
0.0725
,
-
0.0270
,
-
0.0101
,
0.0227
,
0.0256
])
# fmt: on
self
.
assertTrue
(
torch
.
allclose
(
output_slice
,
expected_output_slice
,
rtol
=
1e-2
))
self
.
assertTrue
(
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
rtol
=
1e-2
))
def
test_forward_with_norm_groups
(
self
):
# not required for this model
...
...
@@ -464,7 +464,7 @@ class UNet2DConditionModelIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -490,7 +490,7 @@ class UNet2DConditionModelIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -515,7 +515,7 @@ class UNet2DConditionModelIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -541,7 +541,7 @@ class UNet2DConditionModelIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -566,7 +566,7 @@ class UNet2DConditionModelIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -592,4 +592,4 @@ class UNet2DConditionModelIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
tests/models/test_models_vae.py
View file @
c4ef1efe
...
...
@@ -20,7 +20,7 @@ import torch
from
diffusers
import
AutoencoderKL
from
diffusers.modeling_utils
import
ModelMixin
from
diffusers.utils
import
floats_tensor
,
require_torch_gpu
,
slow
,
torch_device
from
diffusers.utils
import
floats_tensor
,
require_torch_gpu
,
slow
,
torch_all_close
,
torch_device
from
parameterized
import
parameterized
from
..test_modeling_common
import
ModelTesterMixin
...
...
@@ -131,7 +131,7 @@ class AutoencoderKLTests(ModelTesterMixin, unittest.TestCase):
[
-
0.2421
,
0.4642
,
0.2507
,
-
0.0438
,
0.0682
,
0.3160
,
-
0.2018
,
-
0.0727
,
0.2485
]
)
self
.
assertTrue
(
torch
.
allclose
(
output_slice
,
expected_output_slice
,
rtol
=
1e-2
))
self
.
assertTrue
(
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
rtol
=
1e-2
))
@
slow
...
...
@@ -185,7 +185,7 @@ class AutoencoderKLIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -209,7 +209,7 @@ class AutoencoderKLIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
:
2
,
-
2
:].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -231,7 +231,7 @@ class AutoencoderKLIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
-
2
:,
:
2
].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -254,7 +254,7 @@ class AutoencoderKLIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
:
2
,
-
2
:].
flatten
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -276,7 +276,7 @@ class AutoencoderKLIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
-
1
,
-
2
:,
:
2
,
-
2
:].
flatten
().
float
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
@
parameterized
.
expand
(
[
...
...
@@ -300,4 +300,4 @@ class AutoencoderKLIntegrationTests(unittest.TestCase):
output_slice
=
sample
[
0
,
-
1
,
-
3
:,
-
3
:].
flatten
().
cpu
()
expected_output_slice
=
torch
.
tensor
(
expected_slice
)
assert
torch
.
allclose
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
assert
torch
_
all
_
close
(
output_slice
,
expected_output_slice
,
atol
=
1e-4
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment