mirror of
https://github.com/huggingface/diffusers.git
synced 2026-10-27 21:33:02 +03:00
[tests] fix vidtok tests (#13894)
* fix vidtok tests * style * Update tests/models/autoencoders/test_models_autoencoder_vidtok.py Co-authored-by: dg845 <58458699+dg845@users.noreply.github.com> * Apply style fixes --------- Co-authored-by: dg845 <58458699+dg845@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
@@ -19,7 +19,7 @@ import torch
|
||||
from diffusers import AutoencoderVidTok
|
||||
from diffusers.utils.torch_utils import randn_tensor
|
||||
|
||||
from ...testing_utils import IS_GITHUB_ACTIONS, enable_full_determinism, torch_device
|
||||
from ...testing_utils import enable_full_determinism, torch_device
|
||||
from ..testing_utils import BaseModelTesterConfig, MemoryTesterMixin, ModelTesterMixin, TrainingTesterMixin
|
||||
from .testing_utils import NewAutoencoderTesterMixin
|
||||
|
||||
@@ -27,6 +27,16 @@ from .testing_utils import NewAutoencoderTesterMixin
|
||||
enable_full_determinism()
|
||||
|
||||
|
||||
def _run_nondeterministic(fn):
|
||||
# avg_pool3d_backward_cuda has no deterministic CUDA implementation;
|
||||
# temporarily relax the requirement for tests that do backward passes.
|
||||
torch.use_deterministic_algorithms(False)
|
||||
try:
|
||||
fn()
|
||||
finally:
|
||||
torch.use_deterministic_algorithms(True)
|
||||
|
||||
|
||||
class AutoencoderVidTokTesterConfig(BaseModelTesterConfig):
|
||||
@property
|
||||
def model_class(self):
|
||||
@@ -82,14 +92,25 @@ class TestAutoencoderVidTokTraining(AutoencoderVidTokTesterConfig, TrainingTeste
|
||||
expected_set = {"VidTokEncoder3D", "VidTokDecoder3D"}
|
||||
super().test_gradient_checkpointing_is_applied(expected_set=expected_set)
|
||||
|
||||
@pytest.mark.skipif(IS_GITHUB_ACTIONS, reason="Skipping test inside GitHub Actions environment")
|
||||
def test_layerwise_casting_training(self):
|
||||
super().test_layerwise_casting_training()
|
||||
def test_training(self):
|
||||
_run_nondeterministic(super().test_training)
|
||||
|
||||
def test_training_with_ema(self):
|
||||
_run_nondeterministic(super().test_training_with_ema)
|
||||
|
||||
def test_mixed_precision_training(self):
|
||||
_run_nondeterministic(super().test_mixed_precision_training)
|
||||
|
||||
def test_gradient_checkpointing_equivalence(self):
|
||||
_run_nondeterministic(super().test_gradient_checkpointing_equivalence)
|
||||
|
||||
|
||||
class TestAutoencoderVidTokMemory(AutoencoderVidTokTesterConfig, MemoryTesterMixin):
|
||||
"""Memory optimization tests for AutoencoderVidTok."""
|
||||
|
||||
def test_layerwise_casting_training(self):
|
||||
_run_nondeterministic(super().test_layerwise_casting_training)
|
||||
|
||||
|
||||
class TestAutoencoderVidTokSlicingTiling(AutoencoderVidTokTesterConfig, NewAutoencoderTesterMixin):
|
||||
"""Slicing and tiling tests for AutoencoderVidTok."""
|
||||
|
||||
Reference in New Issue
Block a user