Skip to content

Commit 9a875d7

Browse files
πŸ› Fix logging import error (#701)
1 parent 7cd7051 commit 9a875d7

25 files changed

Lines changed: 68 additions & 27 deletions

β€Žengine.pyβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@
3232
APITestPaddleTorchGPUPerformance,
3333
APITestTorchGPUPerformance,
3434
)
35-
from tester.api_config.logging.log_runtime import (
35+
from tester.log_writer.log_runtime import (
3636
close_process_files,
3737
configure_direct_results,
3838
read_log,
3939
)
40-
from tester.api_config.logging.log_worker import write_to_log
40+
from tester.log_writer.log_worker import write_to_log
4141

4242

4343
def parse_bool(value):

β€ŽengineV2.pyβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
record_dump_terminal_status,
4444
resolve_dump_options,
4545
)
46-
from tester.api_config.logging import (
46+
from tester.log_writer import (
4747
init_log,
4848
log_aggregation,
4949
log_report,

β€ŽengineV4.pyβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@
5050
record_dump_terminal_status,
5151
resolve_dump_options,
5252
)
53-
from tester.api_config.logging import (
53+
from tester.api_config.sanitizer_output import analyze_sanitizer_output
54+
from tester.log_writer import (
5455
init_log,
5556
log_aggregation,
5657
log_report,
5758
log_retest,
5859
log_runtime,
5960
log_worker,
6061
)
61-
from tester.api_config.sanitizer_output import analyze_sanitizer_output
6262
from tester.runtime_config import (
6363
TestRuntimeConfig,
6464
limit_worker_layout,

β€Žtester/accuracy.pyβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import torch
99
import yaml
1010

11-
from .api_config.logging.log_worker import write_to_log
1211
from .base import APITestBase, gpu_mode_maybe_empty_cache
12+
from .log_writer.log_worker import write_to_log
1313
from .paddle_to_torch import adaptive_workspace_bytes, get_converter
1414

1515
# from func_timeout import func_set_timeout

β€Žtester/accuracy_stable.pyβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
import torch
1010

1111
from .accuracy import process_grad_output, process_output
12-
from .api_config.logging import log_comparison, log_worker
1312
from .base import CUDA_ERROR, CUDA_OOM, APITestBase, gpu_mode_memory_decision
13+
from .log_writer import log_comparison, log_worker
1414
from .paddle_to_torch import adaptive_workspace_bytes, get_converter
1515

1616

β€Žtester/api_config/config_analyzer.pyβ€Ž

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,27 @@
1212
import yaml
1313

1414

15+
def _is_paddle_place(value):
16+
value_type = type(value)
17+
return value_type.__module__.startswith("paddle.") and value_type.__name__.endswith("Place")
18+
19+
20+
def _deepcopy_config_value(value, memo):
21+
if _is_paddle_place(value):
22+
return value
23+
if isinstance(value, list):
24+
return [_deepcopy_config_value(item, memo) for item in value]
25+
if isinstance(value, tuple):
26+
return tuple(_deepcopy_config_value(item, memo) for item in value)
27+
if isinstance(value, collections.OrderedDict):
28+
return collections.OrderedDict(
29+
(key, _deepcopy_config_value(item, memo)) for key, item in value.items()
30+
)
31+
if isinstance(value, dict):
32+
return {key: _deepcopy_config_value(item, memo) for key, item in value.items()}
33+
return copy.deepcopy(value, memo)
34+
35+
1536
class _LazyTorch:
1637
def __getattr__(self, name):
1738
import torch
@@ -237,7 +258,7 @@ def __deepcopy__(self, memo):
237258
memo[id(self)] = result
238259
result.shape = copy.deepcopy(self.shape)
239260
result.dtype = copy.deepcopy(self.dtype)
240-
result.place = copy.deepcopy(self.place)
261+
result.place = _deepcopy_config_value(self.place, memo)
241262
result.is_contiguous = self.is_contiguous
242263
result.strides = copy.deepcopy(self.strides)
243264
result.numpy_tensor = None
@@ -3726,8 +3747,8 @@ def __deepcopy__(self, memo):
37263747
cls = self.__class__
37273748
result = cls.__new__(cls)
37283749
memo[id(self)] = result
3729-
result.args = copy.deepcopy(self.args)
3730-
result.kwargs = copy.deepcopy(self.kwargs)
3750+
result.args = _deepcopy_config_value(self.args, memo)
3751+
result.kwargs = _deepcopy_config_value(self.kwargs, memo)
37313752
result.api_name = self.api_name
37323753
return result
37333754

β€Žtester/api_config/dump_writer.pyβ€Ž

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -546,9 +546,13 @@ def tensor_to_numpy(obj: Any, meta: dict[str, Any]) -> np.ndarray | None:
546546
tensor = obj.detach().cpu().contiguous()
547547
try:
548548
return tensor.numpy()
549-
except Exception:
550-
meta["stored_as"] = "raw_uint8"
551-
return np.frombuffer(tensor.numpy(force=True).tobytes(), dtype=np.uint8)
549+
except Exception as err:
550+
raw = _torch_tensor_to_raw_uint8_numpy(tensor)
551+
if raw is not None:
552+
meta["stored_as"] = "raw_uint8"
553+
return raw
554+
meta["error"] = f"{type(err).__name__}: {err}"
555+
return None
552556
if isinstance(obj, np.ndarray):
553557
meta.update({"kind": "ndarray", "dtype": str(obj.dtype), "shape": list(obj.shape)})
554558
return obj
@@ -595,6 +599,20 @@ def _make_yaml_safe(value: Any) -> Any:
595599
return str(value)
596600

597601

602+
def _torch_tensor_to_raw_uint8_numpy(obj: Any) -> np.ndarray | None:
603+
try:
604+
import torch
605+
except Exception:
606+
return None
607+
608+
try:
609+
tensor = obj
610+
tensor = tensor.detach().cpu().contiguous()
611+
return tensor.view(torch.uint8).numpy()
612+
except Exception:
613+
return None
614+
615+
598616
def _now_text() -> str:
599617
return time.strftime("%Y-%m-%dT%H:%M:%S%z")
600618

β€Žtester/base.pyβ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
get_cached_numpy_array,
1818
)
1919
from .api_config.dump_writer import DEFAULT_DUMP_DIR, DumpContext, dump_enabled
20-
from .api_config.logging.log_comparison import log_accuracy_tolerance
21-
from .api_config.logging.log_schema import MAX_CSV_CONFIG_LENGTH
22-
from .api_config.logging.log_worker import write_to_log
20+
from .log_writer.log_comparison import log_accuracy_tolerance
21+
from .log_writer.log_schema import MAX_CSV_CONFIG_LENGTH
22+
from .log_writer.log_worker import write_to_log
2323
from .runtime_config import TestRuntimeConfig
2424

2525
with open("tester/base_config.yaml", encoding="utf-8") as f:
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Paddle API ζ΅‹θ―•ζ—₯εΏ—εŒ…γ€‚"""
22

3+
from __future__ import annotations
4+
35
from . import log_aggregation as _aggregation
46
from . import log_runtime as _runtime
57
from . import log_worker as _worker
File renamed without changes.

0 commit comments

Comments
Β (0)