
import os
import sys

import transformers


lowercase						:      List[Any]									= '3'

print('Python version:', sys.version)
print('transformers version:', transformers.__version__)

try:
		import torch

		print('Torch version:', torch.__version__)
		print('Cuda available:', torch.cuda.is_available())
		print('Cuda version:', torch.version.cuda)
		print('CuDNN version:', torch.backends.cudnn.version())
		print('Number of GPUs available:', torch.cuda.device_count())
		print('NCCL version:', torch.cuda.nccl.version())
except ImportError:
		print('Torch version:', None)

try:
		import deepspeed

		print('DeepSpeed version:', deepspeed.__version__)
except ImportError:
		print('DeepSpeed version:', None)

try:
		import tensorflow as tf

		print('TensorFlow version:', tf.__version__)
		print('TF GPUs available:', bool(tf.config.list_physical_devices('GPU')))
		print('Number of TF GPUs available:', len(tf.config.list_physical_devices('GPU')))
except ImportError:
		print('TensorFlow version:', None)

from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


lowercase						:      List[Any]									= {'configuration_swin': ['SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP', 'SwinConfig', 'SwinOnnxConfig']}


try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowercase						:      Dict									= [
		    'SWIN_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'SwinForImageClassification',
		    'SwinForMaskedImageModeling',
		    'SwinModel',
		    'SwinPreTrainedModel',
		    'SwinBackbone',
		]

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowercase						:      Optional[int]									= [
		    'TF_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'TFSwinForImageClassification',
		    'TFSwinForMaskedImageModeling',
		    'TFSwinModel',
		    'TFSwinPreTrainedModel',
		]

if TYPE_CHECKING:
		from .configuration_swin import SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP, SwinConfig, SwinOnnxConfig

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_swin import (
				    SWIN_PRETRAINED_MODEL_ARCHIVE_LIST,
				    SwinBackbone,
				    SwinForImageClassification,
				    SwinForMaskedImageModeling,
				    SwinModel,
				    SwinPreTrainedModel,
				)

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_swin import (
				    TF_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFSwinForImageClassification,
				    TFSwinForMaskedImageModeling,
				    TFSwinModel,
				    TFSwinPreTrainedModel,
				)

else:
		import sys

		lowercase						:      Optional[Any]									= _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)