nntool 1.3.0__cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nntool might be problematic. Click here for more details.

Files changed (76) hide show
  1. nntool/__init__.py +2 -0
  2. nntool/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  3. nntool/__pycache__/__init__.cpython-39.pyc +0 -0
  4. nntool/experiment/__init__.py +6 -0
  5. nntool/experiment/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  6. nntool/experiment/__pycache__/__init__.cpython-39.pyc +0 -0
  7. nntool/experiment/__pycache__/config.cpython-39.opt-1.pyc +0 -0
  8. nntool/experiment/__pycache__/config.cpython-39.pyc +0 -0
  9. nntool/experiment/__pycache__/utils.cpython-39.opt-1.pyc +0 -0
  10. nntool/experiment/__pycache__/utils.cpython-39.pyc +0 -0
  11. nntool/experiment/config.py +112 -0
  12. nntool/experiment/utils.py +63 -0
  13. nntool/parser/__init__.py +1 -0
  14. nntool/parser/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  15. nntool/parser/__pycache__/__init__.cpython-39.pyc +0 -0
  16. nntool/parser/__pycache__/parse.cpython-39.opt-1.pyc +0 -0
  17. nntool/parser/__pycache__/parse.cpython-39.pyc +0 -0
  18. nntool/parser/parse.py +22 -0
  19. nntool/plot/__init__.py +6 -0
  20. nntool/plot/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  21. nntool/plot/__pycache__/__init__.cpython-39.pyc +0 -0
  22. nntool/plot/__pycache__/context.cpython-39.opt-1.pyc +0 -0
  23. nntool/plot/__pycache__/context.cpython-39.pyc +0 -0
  24. nntool/plot/context.py +48 -0
  25. nntool/plot/csrc/__compile__.cpython-39-x86_64-linux-gnu.so +0 -0
  26. nntool/plot/csrc/__init__.py +3 -0
  27. nntool/plot/csrc/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  28. nntool/plot/csrc/__pycache__/__init__.cpython-39.pyc +0 -0
  29. nntool/slurm/__init__.py +9 -0
  30. nntool/slurm/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  31. nntool/slurm/__pycache__/__init__.cpython-39.pyc +0 -0
  32. nntool/slurm/__pycache__/config.cpython-39.opt-1.pyc +0 -0
  33. nntool/slurm/__pycache__/config.cpython-39.pyc +0 -0
  34. nntool/slurm/__pycache__/function.cpython-39.opt-1.pyc +0 -0
  35. nntool/slurm/__pycache__/function.cpython-39.pyc +0 -0
  36. nntool/slurm/__pycache__/task.cpython-39.opt-1.pyc +0 -0
  37. nntool/slurm/__pycache__/task.cpython-39.pyc +0 -0
  38. nntool/slurm/__pycache__/wrap.cpython-39.opt-1.pyc +0 -0
  39. nntool/slurm/__pycache__/wrap.cpython-39.pyc +0 -0
  40. nntool/slurm/accelerator/__init__.py +0 -0
  41. nntool/slurm/accelerator/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  42. nntool/slurm/accelerator/__pycache__/__init__.cpython-39.pyc +0 -0
  43. nntool/slurm/accelerator/__pycache__/utils.cpython-39.opt-1.pyc +0 -0
  44. nntool/slurm/accelerator/__pycache__/utils.cpython-39.pyc +0 -0
  45. nntool/slurm/accelerator/utils.py +39 -0
  46. nntool/slurm/config.py +182 -0
  47. nntool/slurm/csrc/__compile__.cpython-39-x86_64-linux-gnu.so +0 -0
  48. nntool/slurm/csrc/__init__.py +5 -0
  49. nntool/slurm/csrc/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  50. nntool/slurm/csrc/__pycache__/__init__.cpython-39.pyc +0 -0
  51. nntool/slurm/function.py +173 -0
  52. nntool/slurm/task.py +231 -0
  53. nntool/slurm/wrap.py +210 -0
  54. nntool/train/__init__.py +25 -0
  55. nntool/train/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  56. nntool/train/__pycache__/__init__.cpython-39.pyc +0 -0
  57. nntool/train/__pycache__/trainer.cpython-39.opt-1.pyc +0 -0
  58. nntool/train/__pycache__/trainer.cpython-39.pyc +0 -0
  59. nntool/train/trainer.py +92 -0
  60. nntool/utils/__init__.py +6 -0
  61. nntool/utils/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  62. nntool/utils/__pycache__/__init__.cpython-39.pyc +0 -0
  63. nntool/wandb/__init__.py +1 -0
  64. nntool/wandb/__pycache__/__init__.cpython-39.opt-1.pyc +0 -0
  65. nntool/wandb/__pycache__/__init__.cpython-39.pyc +0 -0
  66. nntool/wandb/__pycache__/config.cpython-39.opt-1.pyc +0 -0
  67. nntool/wandb/__pycache__/config.cpython-39.pyc +0 -0
  68. nntool/wandb/config.py +118 -0
  69. nntool-1.3.0.dist-info/._SOURCES.txt +0 -0
  70. nntool-1.3.0.dist-info/._dependency_links.txt +0 -0
  71. nntool-1.3.0.dist-info/._requires.txt +0 -0
  72. nntool-1.3.0.dist-info/._top_level.txt +0 -0
  73. nntool-1.3.0.dist-info/METADATA +25 -0
  74. nntool-1.3.0.dist-info/RECORD +76 -0
  75. nntool-1.3.0.dist-info/WHEEL +6 -0
  76. nntool-1.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,92 @@
1
+ import wandb
2
+ import torch
3
+
4
+ from typing import Dict, Set
5
+ from pathlib import Path
6
+ from abc import abstractmethod
7
+
8
+
9
+ class BaseTrainer(object):
10
+ def __init__(self, output_folder: str, has_wandb_writer: bool = False) -> None:
11
+ self.output_folder = Path(output_folder)
12
+ self.output_folder.mkdir(exist_ok=True)
13
+
14
+ self.has_writer = has_wandb_writer
15
+ self._wandb_defined_metrics: Set[str] = set()
16
+ if self.has_writer:
17
+ self._init_wandb_metric()
18
+
19
+ def _get_wandb_step_name(self, wandb_section: str = "trainer_state") -> str:
20
+ return f"{wandb_section}/{self.__class__.__name__}_step"
21
+
22
+ def _init_wandb_metric(self):
23
+ wandb.define_metric(self._get_wandb_step_name())
24
+ self._wandb_defined_metrics.add(self._get_wandb_step_name())
25
+
26
+ def log(self, log_dict: dict, step: int = None, section: str = "train"):
27
+ if not self.has_writer:
28
+ return
29
+
30
+ # add section to each metric
31
+ log_dict = {f"{section}/{k}": v for k, v in log_dict.items()}
32
+
33
+ # define metrics against custom step name
34
+ for k in log_dict.keys():
35
+ if k not in self._wandb_defined_metrics:
36
+ wandb.define_metric(k, step_metric=self._get_wandb_step_name())
37
+ self._wandb_defined_metrics.add(k)
38
+
39
+ # add step metrics
40
+ if step is not None:
41
+ log_dict.update({self._get_wandb_step_name(): step})
42
+ else:
43
+ log_dict.update({self._get_wandb_step_name(): self.global_step})
44
+
45
+ wandb.log(log_dict)
46
+
47
+ def save(self, milestone: str):
48
+ state = self.get_state()
49
+ torch.save(state, str(self.output_folder / f"model-{milestone}.pt"))
50
+
51
+ def load(self, milestone: str):
52
+ state = torch.load(
53
+ str(self.output_folder / f"model-{milestone}.pt"),
54
+ map_location=self.device,
55
+ )
56
+ self.load_state(state)
57
+
58
+ @abstractmethod
59
+ def train(self):
60
+ raise NotImplementedError
61
+
62
+ @abstractmethod
63
+ def set_model_state(self, train: bool = True):
64
+ raise NotImplementedError
65
+
66
+ @torch.inference_mode()
67
+ @abstractmethod
68
+ def eval(self, dataloader: torch.utils.data.DataLoader) -> Dict[str, object]:
69
+ raise NotImplementedError
70
+
71
+ @torch.inference_mode()
72
+ @abstractmethod
73
+ def eval_during_training(self) -> Dict[str, object]:
74
+ raise NotImplementedError
75
+
76
+ @property
77
+ @abstractmethod
78
+ def device(self) -> torch.DeviceObjType:
79
+ raise NotImplementedError
80
+
81
+ @property
82
+ @abstractmethod
83
+ def global_step(self) -> int:
84
+ raise NotImplementedError
85
+
86
+ @abstractmethod
87
+ def get_state(self) -> Dict[str, object]:
88
+ raise NotImplementedError
89
+
90
+ @abstractmethod
91
+ def load_state(self, state: Dict[str, object]):
92
+ raise NotImplementedError
@@ -0,0 +1,6 @@
1
+ # this is for backward compatibility
2
+ from ..experiment.utils import (
3
+ get_current_time,
4
+ get_output_path,
5
+ read_toml_file,
6
+ )
@@ -0,0 +1 @@
1
+ from .config import WandbConfig, init_wandb
nntool/wandb/config.py ADDED
@@ -0,0 +1,118 @@
1
+ import os
2
+ import git
3
+ import wandb
4
+ import tomli
5
+ import warnings
6
+
7
+ from dataclasses import dataclass, field
8
+
9
+ from wandb.sdk.lib.disabled import RunDisabled
10
+ from wandb.sdk.wandb_run import Run
11
+
12
+
13
+ @dataclass
14
+ class WandbConfig:
15
+ """
16
+ Configuration class for Weights and Biases (wandb) integration.
17
+
18
+ :param api_key_config_file: The file path to the configuration file containing the wandb API key.
19
+ The file should be a toml file with a `[wandb]` section. Default is an empty string.
20
+
21
+ :param project: The name of the project in wandb. Default is an empty string.
22
+
23
+ :param entity: The wandb user or team name. Default is an empty string.
24
+
25
+ :param name: The name of the wandb run. Leave blank to use the default run name. Default is an empty string.
26
+
27
+ :param notes: Notes or comments for the wandb run. Default is an empty string.
28
+
29
+ :param log_git_hash: Whether to log the current Git hash. Default is True.
30
+
31
+ :param log_code: Whether to log the current codebase. Default is True.
32
+
33
+ :param code_root: The root directory of the codebase to be logged. Default is the current directory (`.`).
34
+
35
+ :param code_ext: A list of file extensions for the code files to be logged. Default includes `.py` and `.sh`.
36
+ """
37
+
38
+ # wandb api key (toml file with [wandb] key field)
39
+ api_key_config_file: str = ""
40
+
41
+ # project name in wandb
42
+ project: str = ""
43
+
44
+ # wandb user name
45
+ entity: str = ""
46
+
47
+ # wandb run name (leave blacnk to use default name)
48
+ name: str = ""
49
+
50
+ # wandb run notes
51
+ notes: str = ""
52
+
53
+ # log git hash
54
+ log_git_hash: bool = True
55
+
56
+ # log code
57
+ log_code: bool = True
58
+
59
+ # code root
60
+ code_root: str = "."
61
+
62
+ # code file extensions
63
+ code_ext: list[str] = field(default_factory=lambda: [".py", ".sh"])
64
+
65
+
66
+ def is_wandb_enabled():
67
+ return wandb.run is not None
68
+
69
+
70
+ def init_wandb(args: WandbConfig, run_config: dict) -> Run | RunDisabled | None:
71
+ """initialize wandb and log the configuration
72
+
73
+ :param args: WandbConfig object
74
+ :param run_config: configuration dictionary to be logged
75
+ :return: wandb run object
76
+ """
77
+ project, entity = args.project, args.entity
78
+ if "WANDB_API_KEY" in os.environ:
79
+ warnings.warn("WANDB_API_KEY is found in environment variables. Using it.")
80
+ wandb.login(key=os.environ["WANDB_API_KEY"])
81
+ elif args.api_key_config_file:
82
+ with open(args.api_key_config_file, "rb") as config_file:
83
+ config_data = tomli.load(config_file)
84
+ wandb.login(key=config_data["wandb"]["key"])
85
+ project = config_data["wandb"].get("project", args.project)
86
+ entity = config_data["wandb"].get("entity", args.entity)
87
+ else:
88
+ warnings.warn(
89
+ "WANDB_API_KEY is not found in environment variables or the local key file."
90
+ )
91
+ pass
92
+
93
+ if args.log_git_hash:
94
+ repo = git.Repo(search_parent_directories=True)
95
+ git_hash = repo.head.object.hexsha
96
+ args.notes = (
97
+ f"{args.notes + ', ' if args.notes else ''}" + f"git hash: {git_hash}"
98
+ )
99
+
100
+ wandb_run = wandb.init(
101
+ project=project,
102
+ entity=entity,
103
+ name=args.name if args.name else None,
104
+ notes=args.notes,
105
+ config=run_config,
106
+ )
107
+ if not is_wandb_enabled():
108
+ warnings.warn(
109
+ "wandb is not enabled after intialization. Please check `wandb enabled`."
110
+ )
111
+
112
+ wandb_run.log_code(
113
+ root=args.code_root,
114
+ include_fn=lambda path, root: any(
115
+ [path.endswith(ext) for ext in args.code_ext]
116
+ ),
117
+ )
118
+ return wandb_run
Binary file
Binary file
Binary file
@@ -0,0 +1,25 @@
1
+ Metadata-Version: 2.1
2
+ Name: nntool
3
+ Version: 1.3.0
4
+ Summary: neural network tool for research
5
+ Home-page: https://github.com/jhliu17/nntool
6
+ Author: Junhao Liu
7
+ Author-email: junhaoliu17@gmail.com
8
+ License: MIT
9
+ Keywords: deep learning,neural network,research
10
+ Requires-Python: >=3.9
11
+ Requires-Dist: setuptools >=68.0.0
12
+ Requires-Dist: submitit >=1.5.2
13
+ Requires-Dist: tyro >=0.8.12
14
+ Requires-Dist: matplotlib >=3.8.0
15
+ Requires-Dist: seaborn >=0.13.2
16
+ Requires-Dist: wandb >=0.15.0
17
+ Requires-Dist: tomli >=2.0.1
18
+ Requires-Dist: cythonpackage
19
+ Provides-Extra: dev
20
+ Requires-Dist: pytest >=8.0.2 ; extra == 'dev'
21
+ Requires-Dist: jax[cpu] >=0.4.0 ; extra == 'dev'
22
+ Requires-Dist: torch >=2.2.0 ; extra == 'dev'
23
+ Requires-Dist: mypy ; extra == 'dev'
24
+ Requires-Dist: accelerate ; extra == 'dev'
25
+
@@ -0,0 +1,76 @@
1
+ nntool/__init__.py,sha256=aLOwJwXql9j87YPh8ACPWuGMD4Z_R8JlJVh2P5ZdohY,75
2
+ nntool/slurm/config.py,sha256=UFleYQuXLxz5F4Hx5WuN832UnA0uTQ05M_YyTvsnFOs,6860
3
+ nntool/slurm/function.py,sha256=aSbAgNvYPZaWJoxgjHomVaIZMSRrRzV5XIz1w6Hnrqs,8163
4
+ nntool/slurm/wrap.py,sha256=dN2lzRfE32WRaqj4ohUp9K4n8EKkk657zOer6FbRGPU,9044
5
+ nntool/slurm/__init__.py,sha256=MHg76NOj0qEzr_sXiL0nTarVm6xIXymtbmVc0U9E4_o,228
6
+ nntool/slurm/task.py,sha256=djxm5Ggi2EvPhijDNPCvx-Ppk5_BKQpTy1BAKPZhVHI,7580
7
+ nntool/slurm/accelerator/utils.py,sha256=oZrpcvlHYH14j-uNVEiSye6KiuULG1E34zGLw_IczHc,1298
8
+ nntool/slurm/accelerator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ nntool/slurm/accelerator/__pycache__/utils.cpython-39.pyc,sha256=7doqmi9AEji7UyCnQ6X7ddu0H62IWmcezuqpNP5DlAE,1443
10
+ nntool/slurm/accelerator/__pycache__/__init__.cpython-39.pyc,sha256=kaXilaiufXK9jRyNsYKJtqssUXJfzghbAlRZrLnhTzg,127
11
+ nntool/slurm/accelerator/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=kaXilaiufXK9jRyNsYKJtqssUXJfzghbAlRZrLnhTzg,127
12
+ nntool/slurm/accelerator/__pycache__/utils.cpython-39.opt-1.pyc,sha256=7doqmi9AEji7UyCnQ6X7ddu0H62IWmcezuqpNP5DlAE,1443
13
+ nntool/slurm/csrc/__init__.py,sha256=ew8vy7OKCavl2vOb0ZCDKunHjNGYsfgqZvse7UyhjkE,104
14
+ nntool/slurm/csrc/__compile__.cpython-39-x86_64-linux-gnu.so,sha256=mahoZNJP_0WoGrTSNpx7gtI4UhhwqQa6B5ix7ekatrM,1821168
15
+ nntool/slurm/csrc/__pycache__/__init__.cpython-39.pyc,sha256=3E9i-bc-bm5XW5rNk-HLyfQjdFjvwjn50eBIOik4AzU,238
16
+ nntool/slurm/csrc/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=aVJ3yJQPtRtwKwkLSKip_1WNzIyQ6BB1psH2SCAcVXw,238
17
+ nntool/slurm/__pycache__/function.cpython-39.opt-1.pyc,sha256=HFR2rm67ba4K_7l9ilR08Q-n8WYa4RKAqDQYtLXbxXQ,7977
18
+ nntool/slurm/__pycache__/config.cpython-39.pyc,sha256=ZT4rON8FmKXZ4ky5SsRcYAcehJDbOF_o6pFITWnPKzA,5709
19
+ nntool/slurm/__pycache__/task.cpython-39.pyc,sha256=VD6JMOJuP25sUeP0Y3T2EEdwkMSTXtqYbRPhKWj9cxU,7605
20
+ nntool/slurm/__pycache__/__init__.cpython-39.pyc,sha256=Eimcm8-iLgkvIdqxLTJd77CQKTwTFkGlws-aBqYZA4A,398
21
+ nntool/slurm/__pycache__/config.cpython-39.opt-1.pyc,sha256=2Gyto7BQpNxTzhcF5ig9FNl16cKtuf_nXwGeNMtN5Do,5709
22
+ nntool/slurm/__pycache__/wrap.cpython-39.opt-1.pyc,sha256=RKHEslEmz8OyFcnD7g1nQHlrapRTOjmRTg8aIQn1WQo,8426
23
+ nntool/slurm/__pycache__/function.cpython-39.pyc,sha256=HFR2rm67ba4K_7l9ilR08Q-n8WYa4RKAqDQYtLXbxXQ,7977
24
+ nntool/slurm/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=Eimcm8-iLgkvIdqxLTJd77CQKTwTFkGlws-aBqYZA4A,398
25
+ nntool/slurm/__pycache__/wrap.cpython-39.pyc,sha256=RKHEslEmz8OyFcnD7g1nQHlrapRTOjmRTg8aIQn1WQo,8426
26
+ nntool/slurm/__pycache__/task.cpython-39.opt-1.pyc,sha256=0PHFWliIblp_RKaoyUSdPOFSIzlRDxKsrM7nEiJNDXA,7605
27
+ nntool/train/trainer.py,sha256=f_cFFTdddT1EDX-7DN1_y-jQ3WWxO3ZoHXSF3rgBKqY,2808
28
+ nntool/train/__init__.py,sha256=LRc7-qwMItUFM4FvB0fipqIRJfE_UV0SDBmGBUnMTGQ,827
29
+ nntool/train/__pycache__/trainer.cpython-39.opt-1.pyc,sha256=Koa-n3AAw7hxUFhnCwrb2OeKj4ouo5yGcKu0pQC00Qk,3640
30
+ nntool/train/__pycache__/__init__.cpython-39.pyc,sha256=XJ4avfImgGXls8MjcDMd1BBd6r9BvmM8l5DY9q49s4E,574
31
+ nntool/train/__pycache__/trainer.cpython-39.pyc,sha256=Koa-n3AAw7hxUFhnCwrb2OeKj4ouo5yGcKu0pQC00Qk,3640
32
+ nntool/train/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=XJ4avfImgGXls8MjcDMd1BBd6r9BvmM8l5DY9q49s4E,574
33
+ nntool/utils/__init__.py,sha256=wo1H6JzA6F9VndjieS1UypPf78m2_9Io3eNqc336oxA,135
34
+ nntool/utils/__pycache__/__init__.cpython-39.pyc,sha256=Ecr_FN-nIlxdTIQUfRxjsSrn86UFse8GL4OALEy3ntQ,223
35
+ nntool/utils/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=Ecr_FN-nIlxdTIQUfRxjsSrn86UFse8GL4OALEy3ntQ,223
36
+ nntool/experiment/utils.py,sha256=ajrjYNltyNwNfmFciygCvbcRBtn8Gc7-dVR07Q8xbKo,2119
37
+ nntool/experiment/config.py,sha256=3PQx2B9bTVxdj0i2BQ_shHSzDdFn6nNfjUAfuVjVJoo,3861
38
+ nntool/experiment/__init__.py,sha256=vd7SV9-29tceUk0QiWSgxYJIJws0M2lSSd2pu5KSKwE,127
39
+ nntool/experiment/__pycache__/utils.cpython-39.pyc,sha256=c9YpeYqT6ut4C7iayFZR59_03JAEGKk1N-o4v-7NONU,1902
40
+ nntool/experiment/__pycache__/config.cpython-39.pyc,sha256=ThrOSF1m-tZN0bUh2GNI9fFvq6b4CpVRILNApNwtWNE,4094
41
+ nntool/experiment/__pycache__/__init__.cpython-39.pyc,sha256=vkbYb5UQf3qyq9hwd7mqnKPNi0PDi0d-c0bhQkwggAw,268
42
+ nntool/experiment/__pycache__/config.cpython-39.opt-1.pyc,sha256=ThrOSF1m-tZN0bUh2GNI9fFvq6b4CpVRILNApNwtWNE,4094
43
+ nntool/experiment/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=vkbYb5UQf3qyq9hwd7mqnKPNi0PDi0d-c0bhQkwggAw,268
44
+ nntool/experiment/__pycache__/utils.cpython-39.opt-1.pyc,sha256=c9YpeYqT6ut4C7iayFZR59_03JAEGKk1N-o4v-7NONU,1902
45
+ nntool/plot/__init__.py,sha256=M0qnyO48RzI_62v1EzhXNIszLZEJ7tsTS2YuzDoOoKE,133
46
+ nntool/plot/context.py,sha256=9aEFWZSwliKCX5n2GX1uWPPJR_7dbn8XSVNefipkGB8,1331
47
+ nntool/plot/csrc/__init__.py,sha256=fkzL5CkVtu6JFZ8xxMdLYjRt86bqWiHYfh3UI4iMi8s,51
48
+ nntool/plot/csrc/__compile__.cpython-39-x86_64-linux-gnu.so,sha256=jWadcwppOzlQqyDxBD573bJgaWqTw_4Xnz9bNQtzKK4,743512
49
+ nntool/plot/csrc/__pycache__/__init__.cpython-39.pyc,sha256=ugIdDHIbyqmBhiQRJP0cDGtKuU8UP8Ee4_mBYXtGPyY,172
50
+ nntool/plot/csrc/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=Q37daVDg4xzWBtKaz01-P8M4ARQV7cON__9ObIsTdec,172
51
+ nntool/plot/__pycache__/context.cpython-39.pyc,sha256=RrrD4ri3FAxutyN7JXln9a8fAeeTXItruYqrA-5xtOA,1728
52
+ nntool/plot/__pycache__/context.cpython-39.opt-1.pyc,sha256=RrrD4ri3FAxutyN7JXln9a8fAeeTXItruYqrA-5xtOA,1728
53
+ nntool/plot/__pycache__/__init__.cpython-39.pyc,sha256=4Smux6gn6pzTu8Jy_aCgZZpZBRcLp_pn1BGISpEgQik,273
54
+ nntool/plot/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=bW7IMhsAzuFh1CVdS85VwZYN6hh3xZpwelEBcGXnDzQ,273
55
+ nntool/parser/__init__.py,sha256=991hqyHOJjoaN5WDrIBhEduZs9rmvgV6ShUeZNDAiXo,34
56
+ nntool/parser/parse.py,sha256=IqlcqQfd7GoeTGJkMOrb2_-x0s49Zz_2fA3Fsk_6ysQ,552
57
+ nntool/parser/__pycache__/parse.cpython-39.pyc,sha256=aC1pt4od9UQxXVcsQCJYS314rZG4kGhbhRX5K1PMvMs,593
58
+ nntool/parser/__pycache__/__init__.cpython-39.pyc,sha256=1JkUPTfRoiA_1Vw3MiMRV48_GhHerNZGgVU3Q4RHtqw,160
59
+ nntool/parser/__pycache__/parse.cpython-39.opt-1.pyc,sha256=aC1pt4od9UQxXVcsQCJYS314rZG4kGhbhRX5K1PMvMs,593
60
+ nntool/parser/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=1JkUPTfRoiA_1Vw3MiMRV48_GhHerNZGgVU3Q4RHtqw,160
61
+ nntool/__pycache__/__init__.cpython-39.pyc,sha256=XUWItoTVmdmESTFajbmjBp-g9U_a4dT-KZsgdksdj4A,275
62
+ nntool/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=XUWItoTVmdmESTFajbmjBp-g9U_a4dT-KZsgdksdj4A,275
63
+ nntool/wandb/config.py,sha256=F395QOoByO1-f5ocAmNfEGa7UfZjAWghYxoQgNKV-Ks,3605
64
+ nntool/wandb/__init__.py,sha256=lvn7f3wMkVRz0oyYSjfasFQKjmJ5d6wkDpIDgf0DDKs,44
65
+ nntool/wandb/__pycache__/config.cpython-39.pyc,sha256=zvWnc7xLtON-lvLGW9kbdLLo0jfvtxjk8FG2KTSlGuI,3769
66
+ nntool/wandb/__pycache__/__init__.cpython-39.pyc,sha256=ohHQMM2D2jsMQFCpdJG-GI08Qei0fkkk1XPef7D1yGA,178
67
+ nntool/wandb/__pycache__/config.cpython-39.opt-1.pyc,sha256=Y4jG7eHmkrm8SZt1FXNs1cNx3M9wYF3E6e72ZzoY2tc,3769
68
+ nntool/wandb/__pycache__/__init__.cpython-39.opt-1.pyc,sha256=ohHQMM2D2jsMQFCpdJG-GI08Qei0fkkk1XPef7D1yGA,178
69
+ nntool-1.3.0.dist-info/METADATA,sha256=Rf-21UEryukOszH46JqHrcdg4C9cbwcljBIIHZFJXKk,769
70
+ nntool-1.3.0.dist-info/._requires.txt,sha256=yNlZBj9Qbibg_4etwM6NkI38o7TjR6UoE0tEoNdYPjY,267
71
+ nntool-1.3.0.dist-info/RECORD,,
72
+ nntool-1.3.0.dist-info/WHEEL,sha256=rY0Y6THYM7EImsHfF-zs67o8pQciAsMw9_YuSvftjrQ,148
73
+ nntool-1.3.0.dist-info/top_level.txt,sha256=hXO7zSAI-o9plYeUkCiKbkDpQCfTDIfjivyoSEqT28Y,7
74
+ nntool-1.3.0.dist-info/._SOURCES.txt,sha256=yNlZBj9Qbibg_4etwM6NkI38o7TjR6UoE0tEoNdYPjY,267
75
+ nntool-1.3.0.dist-info/._top_level.txt,sha256=MTm3Nh1CVxvWnLnzanzf6CglfDcr-AzoerhtjweyVT4,366
76
+ nntool-1.3.0.dist-info/._dependency_links.txt,sha256=MTm3Nh1CVxvWnLnzanzf6CglfDcr-AzoerhtjweyVT4,366
@@ -0,0 +1,6 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.43.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp39-cp39-manylinux_2_17_x86_64
5
+ Tag: cp39-cp39-manylinux2014_x86_64
6
+
@@ -0,0 +1 @@
1
+ nntool