nntool 1.3.0__cp310-cp310-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-310.opt-1.pyc +0 -0
  3. nntool/__pycache__/__init__.cpython-310.pyc +0 -0
  4. nntool/experiment/__init__.py +6 -0
  5. nntool/experiment/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  6. nntool/experiment/__pycache__/__init__.cpython-310.pyc +0 -0
  7. nntool/experiment/__pycache__/config.cpython-310.opt-1.pyc +0 -0
  8. nntool/experiment/__pycache__/config.cpython-310.pyc +0 -0
  9. nntool/experiment/__pycache__/utils.cpython-310.opt-1.pyc +0 -0
  10. nntool/experiment/__pycache__/utils.cpython-310.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-310.opt-1.pyc +0 -0
  15. nntool/parser/__pycache__/__init__.cpython-310.pyc +0 -0
  16. nntool/parser/__pycache__/parse.cpython-310.opt-1.pyc +0 -0
  17. nntool/parser/__pycache__/parse.cpython-310.pyc +0 -0
  18. nntool/parser/parse.py +22 -0
  19. nntool/plot/__init__.py +6 -0
  20. nntool/plot/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  21. nntool/plot/__pycache__/__init__.cpython-310.pyc +0 -0
  22. nntool/plot/__pycache__/context.cpython-310.opt-1.pyc +0 -0
  23. nntool/plot/__pycache__/context.cpython-310.pyc +0 -0
  24. nntool/plot/context.py +48 -0
  25. nntool/plot/csrc/__compile__.cpython-310-x86_64-linux-gnu.so +0 -0
  26. nntool/plot/csrc/__init__.py +3 -0
  27. nntool/plot/csrc/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  28. nntool/plot/csrc/__pycache__/__init__.cpython-310.pyc +0 -0
  29. nntool/slurm/__init__.py +9 -0
  30. nntool/slurm/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  31. nntool/slurm/__pycache__/__init__.cpython-310.pyc +0 -0
  32. nntool/slurm/__pycache__/config.cpython-310.opt-1.pyc +0 -0
  33. nntool/slurm/__pycache__/config.cpython-310.pyc +0 -0
  34. nntool/slurm/__pycache__/function.cpython-310.opt-1.pyc +0 -0
  35. nntool/slurm/__pycache__/function.cpython-310.pyc +0 -0
  36. nntool/slurm/__pycache__/task.cpython-310.opt-1.pyc +0 -0
  37. nntool/slurm/__pycache__/task.cpython-310.pyc +0 -0
  38. nntool/slurm/__pycache__/wrap.cpython-310.opt-1.pyc +0 -0
  39. nntool/slurm/__pycache__/wrap.cpython-310.pyc +0 -0
  40. nntool/slurm/accelerator/__init__.py +0 -0
  41. nntool/slurm/accelerator/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  42. nntool/slurm/accelerator/__pycache__/__init__.cpython-310.pyc +0 -0
  43. nntool/slurm/accelerator/__pycache__/utils.cpython-310.opt-1.pyc +0 -0
  44. nntool/slurm/accelerator/__pycache__/utils.cpython-310.pyc +0 -0
  45. nntool/slurm/accelerator/utils.py +39 -0
  46. nntool/slurm/config.py +182 -0
  47. nntool/slurm/csrc/__compile__.cpython-310-x86_64-linux-gnu.so +0 -0
  48. nntool/slurm/csrc/__init__.py +5 -0
  49. nntool/slurm/csrc/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  50. nntool/slurm/csrc/__pycache__/__init__.cpython-310.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-310.opt-1.pyc +0 -0
  56. nntool/train/__pycache__/__init__.cpython-310.pyc +0 -0
  57. nntool/train/__pycache__/trainer.cpython-310.opt-1.pyc +0 -0
  58. nntool/train/__pycache__/trainer.cpython-310.pyc +0 -0
  59. nntool/train/trainer.py +92 -0
  60. nntool/utils/__init__.py +6 -0
  61. nntool/utils/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  62. nntool/utils/__pycache__/__init__.cpython-310.pyc +0 -0
  63. nntool/wandb/__init__.py +1 -0
  64. nntool/wandb/__pycache__/__init__.cpython-310.opt-1.pyc +0 -0
  65. nntool/wandb/__pycache__/__init__.cpython-310.pyc +0 -0
  66. nntool/wandb/__pycache__/config.cpython-310.opt-1.pyc +0 -0
  67. nntool/wandb/__pycache__/config.cpython-310.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-310.pyc,sha256=o-bxDxmitSWbG6o0KuLgTRXZLe3AHVPRoGzq1Ev-iTU,1435
10
+ nntool/slurm/accelerator/__pycache__/utils.cpython-310.opt-1.pyc,sha256=o-bxDxmitSWbG6o0KuLgTRXZLe3AHVPRoGzq1Ev-iTU,1435
11
+ nntool/slurm/accelerator/__pycache__/__init__.cpython-310.pyc,sha256=qmfQ9skriIu7ee28WpFjf5n6BjOLu0XSvZT-fiRe3VU,129
12
+ nntool/slurm/accelerator/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=qmfQ9skriIu7ee28WpFjf5n6BjOLu0XSvZT-fiRe3VU,129
13
+ nntool/slurm/csrc/__init__.py,sha256=ew8vy7OKCavl2vOb0ZCDKunHjNGYsfgqZvse7UyhjkE,104
14
+ nntool/slurm/csrc/__compile__.cpython-310-x86_64-linux-gnu.so,sha256=oDiT0iKdYo6SnwClCh55g6H8G1NE-77C9Xmfn6ZiURA,1813928
15
+ nntool/slurm/csrc/__pycache__/__init__.cpython-310.pyc,sha256=eT1nHcuPo6fWx7d_BY-pSr46zN-sR4hr0Q6uS7FoBIY,240
16
+ nntool/slurm/csrc/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=pE9vEMhMyI_hM8OSnP6nRgJUqHCFsfO5aiX6Fxofft8,240
17
+ nntool/slurm/__pycache__/function.cpython-310.pyc,sha256=CQ7NiikaZGjLS-670_yOobPLZjluUwo4_iFopouGV4U,7972
18
+ nntool/slurm/__pycache__/task.cpython-310.opt-1.pyc,sha256=a_zpjcS1-LNYbzvQmkUmknWNuC7FfsdrrYVyL116mxE,7634
19
+ nntool/slurm/__pycache__/wrap.cpython-310.pyc,sha256=1O8zgL9Qrs7EyV6d1XjNWAu4XQqLQNO3NC499q2aCuw,8466
20
+ nntool/slurm/__pycache__/config.cpython-310.opt-1.pyc,sha256=dJEeXTN48zdGN2-A1OMqDRgZCrd-e0FJ5NyQJ9UzBIs,5702
21
+ nntool/slurm/__pycache__/task.cpython-310.pyc,sha256=dllCJK41Fw6ZsyvkVvG-FSemodTU9650FRxTVzrzNCk,7634
22
+ nntool/slurm/__pycache__/wrap.cpython-310.opt-1.pyc,sha256=1O8zgL9Qrs7EyV6d1XjNWAu4XQqLQNO3NC499q2aCuw,8466
23
+ nntool/slurm/__pycache__/function.cpython-310.opt-1.pyc,sha256=CQ7NiikaZGjLS-670_yOobPLZjluUwo4_iFopouGV4U,7972
24
+ nntool/slurm/__pycache__/__init__.cpython-310.pyc,sha256=ftpFxoxqT4fcl9cyh7JFHRBBHm4YJ_RS95qJTBsfU7Y,400
25
+ nntool/slurm/__pycache__/config.cpython-310.pyc,sha256=SeLnj_y4WyVJRO5UQ1KrzfLmC-xWt2UzIeW1d9GLWK4,5702
26
+ nntool/slurm/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=ftpFxoxqT4fcl9cyh7JFHRBBHm4YJ_RS95qJTBsfU7Y,400
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-310.pyc,sha256=IZqX7G_cREw3vcoyoUx5LL9tW8Cdg-UCbmq0FO38hYw,3558
30
+ nntool/train/__pycache__/trainer.cpython-310.opt-1.pyc,sha256=IZqX7G_cREw3vcoyoUx5LL9tW8Cdg-UCbmq0FO38hYw,3558
31
+ nntool/train/__pycache__/__init__.cpython-310.pyc,sha256=K4kARzeBWVh2C_A8KLxNSZyE_bLzpd3NsS4wyCyaglU,582
32
+ nntool/train/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=K4kARzeBWVh2C_A8KLxNSZyE_bLzpd3NsS4wyCyaglU,582
33
+ nntool/utils/__init__.py,sha256=wo1H6JzA6F9VndjieS1UypPf78m2_9Io3eNqc336oxA,135
34
+ nntool/utils/__pycache__/__init__.cpython-310.pyc,sha256=rjTPcYHdduVBookQAd7iDJUA7d7217sSx-yZD6WjtdI,225
35
+ nntool/utils/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=rjTPcYHdduVBookQAd7iDJUA7d7217sSx-yZD6WjtdI,225
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-310.pyc,sha256=B9zRohwMx_kyVq4i3ijfi20GBoPENmF2ipnajE2TY8I,1932
40
+ nntool/experiment/__pycache__/config.cpython-310.opt-1.pyc,sha256=iS1ZQmJitzdE4Mf83j1pfmH3vtrGUnfFzeD5B4TuksU,4088
41
+ nntool/experiment/__pycache__/utils.cpython-310.opt-1.pyc,sha256=B9zRohwMx_kyVq4i3ijfi20GBoPENmF2ipnajE2TY8I,1932
42
+ nntool/experiment/__pycache__/__init__.cpython-310.pyc,sha256=VeRcGKZKmw3v7_BaWCLZ_idqmV00lYsmibu1gzEUAr4,270
43
+ nntool/experiment/__pycache__/config.cpython-310.pyc,sha256=iS1ZQmJitzdE4Mf83j1pfmH3vtrGUnfFzeD5B4TuksU,4088
44
+ nntool/experiment/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=VeRcGKZKmw3v7_BaWCLZ_idqmV00lYsmibu1gzEUAr4,270
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-310-x86_64-linux-gnu.so,sha256=2GRlCicARxA4V-iuOdXuGu0deqT27CJXjk3y4xm0ErA,738224
49
+ nntool/plot/csrc/__pycache__/__init__.cpython-310.pyc,sha256=9vJKTmP_6UeL9MkVQ4ZUlupDBosXvLlmuDaJHrrW9x8,174
50
+ nntool/plot/csrc/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=iXVFNvhZVFai5AK9LShFIUDSYiPEKn0Umq15x1CpHMQ,174
51
+ nntool/plot/__pycache__/context.cpython-310.opt-1.pyc,sha256=J_kOkmIV_GQPBuJ_hWQ7YYgGhuFjQpnvWbPRjJzEpD0,1750
52
+ nntool/plot/__pycache__/__init__.cpython-310.pyc,sha256=GbhpEuu-hHu2B0A3A6dOwoev-mNveC01qEhJjXWvT3U,275
53
+ nntool/plot/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=pS8ucjrevYJZOB2nBbAKXVi5uaizzCZV4NY-0pk053E,275
54
+ nntool/plot/__pycache__/context.cpython-310.pyc,sha256=J_kOkmIV_GQPBuJ_hWQ7YYgGhuFjQpnvWbPRjJzEpD0,1750
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-310.opt-1.pyc,sha256=v7j8kcFMlDt6-p7cHzgBXRP-vJxEiq4ZFCVgrfw4VFs,601
58
+ nntool/parser/__pycache__/__init__.cpython-310.pyc,sha256=7pZwE5lGf6dnEJsprE9TqUlrKUkvrH9pC9h4WvLR2cw,162
59
+ nntool/parser/__pycache__/parse.cpython-310.pyc,sha256=v7j8kcFMlDt6-p7cHzgBXRP-vJxEiq4ZFCVgrfw4VFs,601
60
+ nntool/parser/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=7pZwE5lGf6dnEJsprE9TqUlrKUkvrH9pC9h4WvLR2cw,162
61
+ nntool/__pycache__/__init__.cpython-310.pyc,sha256=vUDWdiFPntXWhlcy1OzRgdLU7U9oeNV-eT0LlRvxIMA,277
62
+ nntool/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=vUDWdiFPntXWhlcy1OzRgdLU7U9oeNV-eT0LlRvxIMA,277
63
+ nntool/wandb/config.py,sha256=F395QOoByO1-f5ocAmNfEGa7UfZjAWghYxoQgNKV-Ks,3605
64
+ nntool/wandb/__init__.py,sha256=lvn7f3wMkVRz0oyYSjfasFQKjmJ5d6wkDpIDgf0DDKs,44
65
+ nntool/wandb/__pycache__/config.cpython-310.opt-1.pyc,sha256=6LZQaVixEDhAJuPNCh-5kOxc5z_kWBL2tEHWLzFufFc,3783
66
+ nntool/wandb/__pycache__/__init__.cpython-310.pyc,sha256=RELrQA63lgAHAzHWXzstH2k3vmlBuoKXWYYoOeFGq90,180
67
+ nntool/wandb/__pycache__/config.cpython-310.pyc,sha256=SpyfZu8KSSkRuAcpywRrKDiV_C5eNd6T8J3BTuhanZs,3783
68
+ nntool/wandb/__pycache__/__init__.cpython-310.opt-1.pyc,sha256=RELrQA63lgAHAzHWXzstH2k3vmlBuoKXWYYoOeFGq90,180
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=CzQQWV-lNyM92gr3iaBk8dvO35YDHRxgzkZ-dxumUIM,152
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: cp310-cp310-manylinux_2_17_x86_64
5
+ Tag: cp310-cp310-manylinux2014_x86_64
6
+
@@ -0,0 +1 @@
1
+ nntool