Skip to content

Commit f2f5f72

Browse files
committed
debug loggers for checking data and network memory usage
1 parent 671edc5 commit f2f5f72

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

autoPyTorch/pipeline/components/setup/early_preprocessor/EarlyPreprocessing.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
from typing import Any, Dict, Optional, Union
2+
import logging.handlers
3+
import time
4+
import psutil
25

36
from ConfigSpace.configuration_space import ConfigurationSpace
47

@@ -12,6 +15,7 @@
1215
from autoPyTorch.pipeline.components.setup.base_setup import autoPyTorchSetupComponent
1316
from autoPyTorch.pipeline.components.setup.early_preprocessor.utils import get_preprocess_transforms, preprocess
1417
from autoPyTorch.utils.common import FitRequirement
18+
from autoPyTorch.utils.logging_ import get_named_client_logger
1519

1620

1721
class EarlyPreprocessing(autoPyTorchSetupComponent):
@@ -25,7 +29,12 @@ def __init__(self, random_state: Optional[np.random.RandomState] = None) -> None
2529

2630
def fit(self, X: Dict[str, Any], y: Any = None) -> "EarlyPreprocessing":
2731
self.check_requirements(X, y)
28-
32+
self.logger = get_named_client_logger(
33+
name=f"{X['num_run']}_{self.__class__.__name__}_{time.time()}",
34+
# Log to a user provided port else to the default logging port
35+
port=X['logger_port'
36+
] if 'logger_port' in X else logging.handlers.DEFAULT_TCP_LOGGING_PORT,
37+
)
2938
return self
3039

3140
def transform(self, X: Dict[str, Any]) -> Dict[str, Any]:
@@ -37,7 +46,9 @@ def transform(self, X: Dict[str, Any]) -> Dict[str, Any]:
3746
# Incorporate the transform to the dataset
3847
X_train = X['backend'].load_datamanager().train_tensors[0]
3948

49+
self.logger.debug(f"Available virtual memory: {psutil.virtual_memory().available/1024/1024}, total virtual memroy: {psutil.virtual_memory().total/1024/1024}")
4050
X['X_train'] = preprocess(dataset=X_train, transforms=transforms)
51+
self.logger.debug(f"After preprocessing Available virtual memory: {psutil.virtual_memory().available/1024/1024}, total virtual memroy: {psutil.virtual_memory().total/1024/1024}")
4152

4253
# We need to also save the preprocess transforms for inference
4354
X.update({

autoPyTorch/pipeline/components/setup/network_backbone/base_network_backbone.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from abc import abstractmethod
22
from typing import Any, Dict, Iterable, Optional, Tuple
3+
import logging.handlers
4+
import time
5+
import psutil
36

47
import numpy as np
58

@@ -16,6 +19,8 @@
1619
)
1720
from autoPyTorch.pipeline.components.setup.network_backbone.utils import get_output_shape
1821
from autoPyTorch.utils.common import FitRequirement
22+
from autoPyTorch.utils.logging_ import get_named_client_logger
23+
1924

2025

2126
class NetworkBackboneComponent(autoPyTorchComponent):
@@ -48,11 +53,17 @@ def fit(self, X: Dict[str, Any], y: Any = None) -> BaseEstimator:
4853
Self
4954
"""
5055
self.check_requirements(X, y)
51-
56+
self.logger = get_named_client_logger(
57+
name=f"{X['num_run']}_{self.__class__.__name__}_{time.time()}",
58+
# Log to a user provided port else to the default logging port
59+
port=X['logger_port'
60+
] if 'logger_port' in X else logging.handlers.DEFAULT_TCP_LOGGING_PORT,
61+
)
5262
input_shape = X['shape_after_preprocessing']
5363

5464
input_shape = get_output_shape(X['network_embedding'], input_shape=input_shape)
5565
self.input_shape = input_shape
66+
self.logger.debug(f"Before building backbone Available virtual memory: {psutil.virtual_memory().available/1024/1024}, total virtual memroy: {psutil.virtual_memory().total/1024/1024}")
5667

5768
self.backbone = self.build_backbone(
5869
input_shape=input_shape,

autoPyTorch/pipeline/components/setup/network_embedding/base_network_embedding.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
from typing import Any, Dict, List, Optional, Tuple
1+
import copy
2+
from typing import Any, Dict, Optional, Tuple
3+
import logging.handlers
4+
import time
5+
import psutil
26

37
import numpy as np
48

@@ -7,6 +11,8 @@
711
from torch import nn
812

913
from autoPyTorch.pipeline.components.setup.base_setup import autoPyTorchSetupComponent
14+
from autoPyTorch.utils.logging_ import get_named_client_logger
15+
1016
from autoPyTorch.utils.common import FitRequirement
1117

1218

@@ -20,12 +26,20 @@ def __init__(self, random_state: Optional[np.random.RandomState] = None):
2026
self.embedding: Optional[nn.Module] = None
2127

2228
def fit(self, X: Dict[str, Any], y: Any = None) -> BaseEstimator:
29+
self.logger = get_named_client_logger(
30+
name=f"{X['num_run']}_{self.__class__.__name__}_{time.time()}",
31+
# Log to a user provided port else to the default logging port
32+
port=X['logger_port'
33+
] if 'logger_port' in X else logging.handlers.DEFAULT_TCP_LOGGING_PORT,
34+
)
35+
self.logger.debug(f"Before getting info for embedding Available virtual memory: {psutil.virtual_memory().available/1024/1024}, total virtual memroy: {psutil.virtual_memory().total/1024/1024}")
2336

2437
num_features_excl_embed, num_categories_per_col = self._get_required_info_from_data(X)
25-
38+
self.logger.debug(f"Before building embedding Available virtual memory: {psutil.virtual_memory().available/1024/1024}, total virtual memroy: {psutil.virtual_memory().total/1024/1024}")
2639
self.embedding = self.build_embedding(
2740
num_categories_per_col=num_categories_per_col,
2841
num_features_excl_embed=num_features_excl_embed)
42+
self.logger.debug(f"After building embedding Available virtual memory: {psutil.virtual_memory().available/1024/1024}, total virtual memroy: {psutil.virtual_memory().total/1024/1024}")
2943
return self
3044

3145
def transform(self, X: Dict[str, Any]) -> Dict[str, Any]:

0 commit comments

Comments
 (0)