homa 0.1.1__py3-none-any.whl → 0.2.9__py3-none-any.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.
Files changed (118) hide show
  1. homa/activations/APLU.py +49 -0
  2. homa/activations/ActivationFunction.py +6 -0
  3. homa/activations/AdaptiveActivationFunction.py +15 -0
  4. homa/activations/BaseDLReLU.py +34 -0
  5. homa/activations/CaLU.py +13 -0
  6. homa/activations/DLReLU.py +6 -0
  7. homa/activations/ERF.py +10 -0
  8. homa/activations/Elliot.py +10 -0
  9. homa/activations/ExpExpish.py +9 -0
  10. homa/activations/ExponentialDLReLU.py +6 -0
  11. homa/activations/ExponentialSwish.py +10 -0
  12. homa/activations/GCU.py +9 -0
  13. homa/activations/GaLU.py +11 -0
  14. homa/activations/GaussianReLU.py +50 -0
  15. homa/activations/GeneralizedSwish.py +10 -0
  16. homa/activations/Gish.py +11 -0
  17. homa/activations/LaLU.py +11 -0
  18. homa/activations/LogLogish.py +10 -0
  19. homa/activations/LogSigmoid.py +10 -0
  20. homa/activations/Logish.py +10 -0
  21. homa/activations/MeLU.py +11 -0
  22. homa/activations/MexicanReLU.py +49 -0
  23. homa/activations/MinSin.py +10 -0
  24. homa/activations/NReLU.py +12 -0
  25. homa/activations/NoisyReLU.py +6 -0
  26. homa/activations/PLogish.py +6 -0
  27. homa/activations/ParametricLogish.py +13 -0
  28. homa/activations/Phish.py +11 -0
  29. homa/activations/RReLU.py +16 -0
  30. homa/activations/RandomizedSlopedReLU.py +7 -0
  31. homa/activations/SGELU.py +12 -0
  32. homa/activations/SReLU.py +37 -0
  33. homa/activations/SelfArctan.py +9 -0
  34. homa/activations/ShiftedReLU.py +10 -0
  35. homa/activations/SigmoidDerivative.py +10 -0
  36. homa/activations/SineReLU.py +11 -0
  37. homa/activations/SlopedReLU.py +13 -0
  38. homa/activations/SmallGaLU.py +11 -0
  39. homa/activations/Smish.py +9 -0
  40. homa/activations/SoftsignRReLU.py +17 -0
  41. homa/activations/Suish.py +11 -0
  42. homa/activations/TBSReLU.py +13 -0
  43. homa/activations/TSReLU.py +10 -0
  44. homa/activations/TangentBipolarSigmoidReLU.py +6 -0
  45. homa/activations/TangentSigmoidReLU.py +6 -0
  46. homa/activations/TeLU.py +9 -0
  47. homa/activations/TripleStateSwish.py +15 -0
  48. homa/activations/WideMeLU.py +15 -0
  49. homa/activations/__init__.py +49 -2
  50. homa/activations/learnable/AOAF.py +16 -0
  51. homa/activations/learnable/AReLU.py +16 -0
  52. homa/activations/learnable/DPReLU.py +16 -0
  53. homa/activations/learnable/DualLine.py +18 -0
  54. homa/activations/learnable/FReLU.py +14 -0
  55. homa/activations/learnable/LeLeLU.py +14 -0
  56. homa/activations/learnable/PERU.py +16 -0
  57. homa/activations/learnable/PiLU.py +18 -0
  58. homa/activations/learnable/ShiLU.py +16 -0
  59. homa/activations/learnable/StarReLU.py +16 -0
  60. homa/activations/learnable/__init__.py +10 -0
  61. homa/activations/learnable/concerns/ChannelBased.py +36 -0
  62. homa/activations/learnable/concerns/__init__.py +1 -0
  63. homa/cli/Commands/Command.py +2 -0
  64. homa/cli/Commands/InitCommand.py +34 -0
  65. homa/cli/Commands/__init__.py +2 -0
  66. homa/cli/HomaCommand.py +4 -0
  67. homa/ensemble/Ensemble.py +2 -4
  68. homa/ensemble/concerns/CalculatesMetricNecessities.py +14 -10
  69. homa/ensemble/concerns/PredictsProbabilities.py +4 -0
  70. homa/ensemble/concerns/ReportsClassificationMetrics.py +1 -1
  71. homa/ensemble/concerns/ReportsEnsembleAccuracy.py +3 -2
  72. homa/ensemble/concerns/ReportsLogits.py +4 -0
  73. homa/ensemble/concerns/ReportsSize.py +2 -2
  74. homa/ensemble/concerns/StoresModels.py +29 -0
  75. homa/ensemble/concerns/__init__.py +1 -2
  76. homa/loss/LogitNormLoss.py +12 -0
  77. homa/loss/Loss.py +2 -0
  78. homa/loss/__init__.py +2 -0
  79. homa/torch/__init__.py +0 -1
  80. homa/vision/Classifier.py +5 -0
  81. homa/vision/Resnet.py +6 -5
  82. homa/vision/StochasticClassifier.py +29 -0
  83. homa/vision/StochasticSwin.py +11 -0
  84. homa/vision/Swin.py +13 -0
  85. homa/vision/__init__.py +3 -1
  86. homa/vision/concerns/HasLabels.py +13 -0
  87. homa/vision/concerns/HasLogits.py +12 -0
  88. homa/vision/concerns/HasProbabilities.py +9 -0
  89. homa/vision/concerns/ReportsAccuracy.py +27 -0
  90. homa/vision/concerns/ReportsMetrics.py +6 -0
  91. homa/vision/concerns/Trainable.py +5 -2
  92. homa/vision/concerns/__init__.py +5 -0
  93. homa/vision/modules/SwinModule.py +23 -0
  94. homa/vision/modules/__init__.py +1 -1
  95. homa/vision/utils.py +9 -18
  96. homa-0.2.9.dist-info/METADATA +75 -0
  97. homa-0.2.9.dist-info/RECORD +113 -0
  98. homa/activations/classes/APLU.py +0 -48
  99. homa/activations/classes/GALU.py +0 -51
  100. homa/activations/classes/MELU.py +0 -50
  101. homa/activations/classes/PDELU.py +0 -39
  102. homa/activations/classes/SReLU.py +0 -49
  103. homa/activations/classes/SmallGALU.py +0 -39
  104. homa/activations/classes/StochasticActivation.py +0 -20
  105. homa/activations/classes/WideMELU.py +0 -61
  106. homa/activations/classes/__init__.py +0 -8
  107. homa/activations/utils.py +0 -27
  108. homa/ensemble/concerns/HasNetwork.py +0 -5
  109. homa/ensemble/concerns/HasStateDicts.py +0 -8
  110. homa/ensemble/concerns/RecordsStateDictionaries.py +0 -23
  111. homa/torch/Module.py +0 -8
  112. homa/vision/StochasticResnet.py +0 -8
  113. homa/vision/modules/StochasticResnetModule.py +0 -9
  114. homa-0.1.1.dist-info/METADATA +0 -21
  115. homa-0.1.1.dist-info/RECORD +0 -51
  116. {homa-0.1.1.dist-info → homa-0.2.9.dist-info}/WHEEL +0 -0
  117. {homa-0.1.1.dist-info → homa-0.2.9.dist-info}/entry_points.txt +0 -0
  118. {homa-0.1.1.dist-info → homa-0.2.9.dist-info}/top_level.txt +0 -0
@@ -1,39 +0,0 @@
1
- import torch
2
-
3
-
4
- class SmallGALU(torch.nn.Module):
5
- def __init__(self, max_input: float = 1.0):
6
- super(SmallGALU, self).__init__()
7
- if max_input <= 0:
8
- raise ValueError("max_input must be positive.")
9
- self.max_input = max_input
10
- self.alpha = None
11
- self.beta = None
12
- self._num_channels = None
13
-
14
- def _initialize_parameters(self, x):
15
- if x.ndim < 2:
16
- raise ValueError(
17
- f"Input tensor must have at least 2 dimensions (N, C), but got shape {x.shape}"
18
- )
19
-
20
- num_channels = x.shape[1]
21
- self._num_channels = num_channels
22
- param_shape = [1] * x.ndim
23
- param_shape[1] = num_channels
24
- self.alpha = torch.nn.Parameter(torch.zeros(param_shape))
25
- self.beta = torch.nn.Parameter(torch.zeros(param_shape))
26
-
27
- def forward(self, x):
28
- if self.alpha is None:
29
- self._initialize_parameters(x)
30
-
31
- zero = torch.tensor(0.0, device=x.device, dtype=x.dtype)
32
- x_norm = x / self.max_input
33
- part_prelu = torch.relu(x_norm) + self.alpha * torch.min(x_norm, zero)
34
- part_beta = self.beta * (
35
- torch.relu(1.0 - torch.abs(x_norm - 1.0))
36
- + torch.min(torch.abs(x_norm - 3.0) - 1.0, zero)
37
- )
38
- z = part_prelu + part_beta
39
- return z * self.max_input
@@ -1,20 +0,0 @@
1
- import torch
2
- import random
3
-
4
- from .APLU import APLU
5
- from .GALU import GALU
6
- from .SmallGALU import SmallGALU
7
- from .MELU import MELU
8
- from .WideMELU import WideMELU
9
- from .PDELU import PDELU
10
- from .SReLU import SReLU
11
-
12
-
13
- class StochasticActivation(torch.nn.Module):
14
- def __init__(self):
15
- super().__init__()
16
- self.gate = random.choice([APLU, GALU, SmallGALU, MELU, WideMELU, PDELU, SReLU])
17
- self.gate = self.gate()
18
-
19
- def forward(self, x: torch.Tensor) -> torch.Tensor:
20
- return self.gate(x)
@@ -1,61 +0,0 @@
1
- import torch
2
-
3
-
4
- class WideMELU(torch.nn.Module):
5
- def __init__(self, maxInput: float = 1.0):
6
- super().__init__()
7
- self.maxInput = float(maxInput)
8
- self.alpha = None
9
- self.beta = None
10
- self.gamma = None
11
- self.delta = None
12
- self.xi = None
13
- self.psi = None
14
- self.theta = None
15
- self.lam = None
16
- self._initialized = False
17
-
18
- def _initialize_parameters(self, X: torch.Tensor):
19
- if X.dim() != 4:
20
- raise ValueError(
21
- f"Expected 4D input (B, C, H, W), but got {X.dim()}D input."
22
- )
23
-
24
- num_channels = X.shape[1]
25
- shape = (1, num_channels, 1, 1)
26
-
27
- self.alpha = torch.nn.Parameter(torch.zeros(shape))
28
- self.beta = torch.nn.Parameter(torch.zeros(shape))
29
- self.gamma = torch.nn.Parameter(torch.zeros(shape))
30
- self.delta = torch.nn.Parameter(torch.zeros(shape))
31
- self.xi = torch.nn.Parameter(torch.zeros(shape))
32
- self.psi = torch.nn.Parameter(torch.zeros(shape))
33
- self.theta = torch.nn.Parameter(torch.zeros(shape))
34
- self.lam = torch.nn.Parameter(torch.zeros(shape))
35
- self._initialized = True
36
-
37
- def forward(self, X: torch.Tensor) -> torch.Tensor:
38
- if not self._initialized:
39
- self._initialize_parameters(X)
40
- X_norm = X / self.maxInput
41
- Y = torch.roll(X_norm, shifts=-1, dims=1)
42
- term1 = torch.relu(X_norm)
43
- term2 = self.alpha * torch.clamp(X_norm, max=0)
44
- dist_sq_beta = (X_norm - 2) ** 2 + (Y - 2) ** 2
45
- dist_sq_gamma = (X_norm - 1) ** 2 + (Y - 1) ** 2
46
- dist_sq_delta = (X_norm - 1) ** 2 + (Y - 3) ** 2
47
- dist_sq_xi = (X_norm - 3) ** 2 + (Y - 1) ** 2
48
- dist_sq_psi = (X_norm - 3) ** 2 + (Y - 3) ** 2
49
- dist_sq_theta = (X_norm - 1) ** 2 + (Y - 2) ** 2
50
- dist_sq_lambda = (X_norm - 3) ** 2 + (Y - 2) ** 2
51
-
52
- term3 = self.beta * torch.sqrt(torch.relu(2 - dist_sq_beta))
53
- term4 = self.gamma * torch.sqrt(torch.relu(1 - dist_sq_gamma))
54
- term5 = self.delta * torch.sqrt(torch.relu(1 - dist_sq_delta))
55
- term6 = self.xi * torch.sqrt(torch.relu(1 - dist_sq_xi))
56
- term7 = self.psi * torch.sqrt(torch.relu(1 - dist_sq_psi))
57
- term8 = self.theta * torch.sqrt(torch.relu(1 - dist_sq_theta))
58
- term9 = self.lam * torch.sqrt(torch.relu(1 - dist_sq_lambda))
59
- Z_norm = term1 + term2 + term3 + term4 + term5 + term6 + term7 + term8 + term9
60
- Z = Z_norm * self.maxInput
61
- return Z
@@ -1,8 +0,0 @@
1
- from .APLU import APLU
2
- from .GALU import GALU
3
- from .SmallGALU import SmallGALU
4
- from .MELU import MELU
5
- from .WideMELU import WideMELU
6
- from .PDELU import PDELU
7
- from .SReLU import SReLU
8
- from .StochasticActivation import StochasticActivation
homa/activations/utils.py DELETED
@@ -1,27 +0,0 @@
1
- import torch
2
-
3
-
4
- def negative_part(x):
5
- return torch.minimum(x, torch.zeros_like(x))
6
-
7
-
8
- def positive_part(x):
9
- return torch.maximum(x, torch.zeros_like(x))
10
-
11
-
12
- def as_channel_parameters(parameter: torch.Tensor, x: torch.Tensor):
13
- shape = [1] * x.dim()
14
- shape[1] = -1
15
- return parameter.view(*shape)
16
-
17
-
18
- def device_compatibility_check(model, x: torch.Tensor):
19
- for p in model.parameters():
20
- if p.device != x.device or p.dtype != x.dtype:
21
- p.data = p.data.to(device=x.device, dtype=x.dtype)
22
-
23
-
24
- def phi_hat(x, a, lam):
25
- term_pos = torch.maximum(lam - torch.abs(x - a), torch.zeros_like(x))
26
- term_neg = torch.minimum(torch.abs(x - (a + 2 * lam)) - lam, torch.zeros_like(x))
27
- return term_pos + term_neg
@@ -1,5 +0,0 @@
1
- class HasNetwork:
2
- def __init__(self, *args, **kwargs):
3
- super().__init__(*args, **kwargs)
4
- # This property is going to be filled with the first model that is fed into the ensemble.
5
- self.network = None
@@ -1,8 +0,0 @@
1
- from typing import List
2
- from collections import OrderedDict
3
-
4
-
5
- class HasStateDicts:
6
- def __init__(self, *args, **kwargs):
7
- super().__init__(*args, **kwargs)
8
- self.state_dicts: List[OrderedDict] = []
@@ -1,23 +0,0 @@
1
- from copy import deepcopy
2
- from .HasStateDicts import HasStateDicts
3
- from ...vision import Model
4
-
5
-
6
- class RecordsStateDictionaries(HasStateDicts):
7
- def __init__(self, *args, **kwargs):
8
- super().__init__(*args, **kwargs)
9
-
10
- def record(self, model: Model):
11
- if self.network is None:
12
- self.network = deepcopy(model.network)
13
-
14
- self.state_dicts.append(model.network.state_dict())
15
-
16
- def push(self, *args, **kwargs):
17
- self.record(*args, **kwargs)
18
-
19
- def append(self, *args, **kwargs):
20
- self.record(*args, **kwargs)
21
-
22
- def add(self, *args, **kwargs):
23
- self.record(*args, **kwargs)
homa/torch/Module.py DELETED
@@ -1,8 +0,0 @@
1
- import torch
2
- from ..device import get_device
3
-
4
-
5
- class Module(torch.nn.Module):
6
- def __init__(self):
7
- super(Module, self).__init__()
8
- self.to(get_device())
@@ -1,8 +0,0 @@
1
- from .modules import StochasticResnetModule
2
- from .Resnet import Resnet
3
-
4
-
5
- class StochasticResnet(Resnet):
6
- def __init__(self, **kwargs):
7
- super().__init__(**kwargs)
8
- self.model = StochasticResnetModule(kwargs["num_classes"])
@@ -1,9 +0,0 @@
1
- from .ResnetModule import ResnetModule
2
- from ..utils import replace_relu
3
- from ...activations import StochasticActivation
4
-
5
-
6
- class StochasticResnetModule(ResnetModule):
7
- def __init__(self, *args, **kwargs):
8
- super().__init__(*args, **kwargs)
9
- replace_relu(self, StochasticActivation)
@@ -1,21 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: homa
3
- Version: 0.1.1
4
- Summary: A curated list of machine learning and deep learning helpers.
5
- Author-email: Taha Shieenavaz <tahashieenavaz@gmail.com>
6
- Requires-Python: >=3.7
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: numpy
9
- Requires-Dist: torch
10
- Requires-Dist: fire
11
-
12
- ## Device Management
13
-
14
- ```py
15
- from homa import cpu, mps, cuda, device
16
-
17
- torch.tensor([1, 2, 3, 4, 5]).to(cpu())
18
- torch.tensor([1, 2, 3, 4, 5]).to(cuda())
19
- torch.tensor([1, 2, 3, 4, 5]).to(mps())
20
- torch.tensor([1, 2, 3, 4, 5]).to(device())
21
- ```
@@ -1,51 +0,0 @@
1
- homa/__init__.py,sha256=NBYFKizG8UASiz5HLsEBqzXNGlWr78xm4sLr5hxKvjU,46
2
- homa/device.py,sha256=9kKXfpYfnEk2cFQWPfcJrVloHgC_SSbP4I8IRY9TYk4,343
3
- homa/settings.py,sha256=CPZDPvs1380O7SY7FcSKol8kBVFVVYFgSJl3YEyJuZ0,263
4
- homa/utils.py,sha256=dPp6TItJwWxBqxmkMzUuCtX_BzdPT-kMOZyXRGVMCbQ,70
5
- homa/activations/__init__.py,sha256=zrEyWrYuQAD9R8GJBJUChfkW8_lsMUEwHvAcASoac3k,44
6
- homa/activations/utils.py,sha256=asXbV7tl48ORLiggXHo6hjYNIjWuHvmuhVv311IJebA,734
7
- homa/activations/classes/APLU.py,sha256=tjdHYrOqO6vA6qFVAbUuu1O9kB_bPq4AYuiXpbyk2vg,1499
8
- homa/activations/classes/GALU.py,sha256=LNH-iO89cDXoL6iXtny5DxW3n7sO34s4_GWXcFlzgQM,1864
9
- homa/activations/classes/MELU.py,sha256=80_0H4pjGXngiGsyT09c4h2MFRkds8Ypn-zXRJ45NQY,2060
10
- homa/activations/classes/PDELU.py,sha256=tRdxa1RLQuXEjXrSD283qgIulbOPX1mQtV5GGqrVUH0,1418
11
- homa/activations/classes/SReLU.py,sha256=TxTxcAvRQHYykGq0uXP2QthNIK_BNsLaoqzHPHSFRIY,1828
12
- homa/activations/classes/SmallGALU.py,sha256=LS92S4lgIOrqbJPMA1pBJSkkm3lIChd1dRE_XV-YRd8,1342
13
- homa/activations/classes/StochasticActivation.py,sha256=0A2iTQmtvA7Yx9hOf4fuqTvTSi_8bIT3dsKLe--Od3o,515
14
- homa/activations/classes/WideMELU.py,sha256=7-p-mhOt8kc_qniXqF6wGYVxtLveL7bUIUJSFKQYD0M,2507
15
- homa/activations/classes/__init__.py,sha256=RBI51Jc9EBPrpwLNCmzLkz3fhJCRRSI46HjsI1CL1Es,238
16
- homa/cli/HomaCommand.py,sha256=zUWDLpXb6zO6DWZ71MuhPNawjXTqkXJPEwZxWN7Ejx0,226
17
- homa/cli/namespaces/CacheNamespace.py,sha256=QXGljzj287stzTx0y_MXnqvCgPLqd7WjSPop2WDe14E,784
18
- homa/cli/namespaces/MakeNamespace.py,sha256=5G6LHk3lDkXROz7uq4jYE0DyO_V7JvnhJ33IFCiqYro,590
19
- homa/cli/namespaces/__init__.py,sha256=zAKUGPH4wcacxfH5Qvidp-uOuHdfzhan6kvVI6eMKA8,84
20
- homa/ensemble/Ensemble.py,sha256=gYfQfdKSZdLlWNGMUGCOEv3vQj0nhYYpJmznETizXfA,346
21
- homa/ensemble/__init__.py,sha256=1pk2W-NbgfDFh9WLKZVLUk2E3PTjVZ5Bap9dQEnrs9o,31
22
- homa/ensemble/concerns/CalculatesMetricNecessities.py,sha256=hU0Nn-4UYQXUy7gQmWL638w4vZjwigAMkxyFnqRboiM,706
23
- homa/ensemble/concerns/HasNetwork.py,sha256=WlE-gpt7WlCOW0vIlnqJJsYCi2Ids7uE6CDjolOoElw,227
24
- homa/ensemble/concerns/HasStateDicts.py,sha256=EAQj01qC_wnJUgQ6ReZI9kc1fFC-tqPrXjeGhE2Ka6M,215
25
- homa/ensemble/concerns/PredictsProbabilities.py,sha256=qdCpS-NdoYQdtXJXRKz96MY1VW06baJ-pu_7zP3X_JU,330
26
- homa/ensemble/concerns/RecordsStateDictionaries.py,sha256=FeIyDDxm60p5DCNVjq7xRyuhM04gvJI0ftigtjfXXLA,635
27
- homa/ensemble/concerns/ReportsClassificationMetrics.py,sha256=YDFH7nMStudtc6pJqBGDNzQmknKIVDLgwCWsr4NFXc4,395
28
- homa/ensemble/concerns/ReportsEnsembleAccuracy.py,sha256=x_cfPsikXc4dUsta2-gnOUoiSCb5J-gq4ao4ESZPDFs,306
29
- homa/ensemble/concerns/ReportsEnsembleF1.py,sha256=hdtdCQrWaFJNUn1KP9cAmi_q_EA4FYnpkBMlYLjzRZg,296
30
- homa/ensemble/concerns/ReportsEnsembleKappa.py,sha256=ZRbtrFCTD84EDql6ZL1xeWtTLFxpO5Y5tQaUlR6_0jw,300
31
- homa/ensemble/concerns/ReportsLogits.py,sha256=H0AFvCcRDYjGtgrpinVLUyhvumF4Lmo2nyvtNOa_ARM,355
32
- homa/ensemble/concerns/ReportsSize.py,sha256=6XJYc24isbbnoNV8DJWwaFfhi__qAnYEQZQJMDPL4VA,248
33
- homa/ensemble/concerns/__init__.py,sha256=UtEqGhxlNypLa29bxw59Z1W4SN3Tju1ynJI72luIiAo,538
34
- homa/torch/Module.py,sha256=UuRTJXxp7hlQHHL2dBGVlHlyA2OFgJ1Xz9SAff8Iv3c,171
35
- homa/torch/__init__.py,sha256=Z-sIT4UjMBo2BgGoEPyQ20xJWVeX1W5Q4_C7CDa0SdE,50
36
- homa/torch/helpers.py,sha256=CLbTCXRrroM0n4PfM-K_xFavs4dCZJEu_L7hdgb1DCI,134
37
- homa/vision/Model.py,sha256=JIeVpHJwirHfsDfYYbLsu0kt7bGf4nhMQGIOagUDKw4,22
38
- homa/vision/Resnet.py,sha256=Kh5QLYp8X8o9vFHYqTeOs1uRb6n36FsENdHTIiFZTAs,409
39
- homa/vision/StochasticResnet.py,sha256=mLgKBfqRJtOgWdgfVHHTnIJVg2SHQDYz4ywXiTWqcIY,241
40
- homa/vision/__init__.py,sha256=9M65-r8ykfncoPS3UYJC536vi2ytyzHAf4ZZ4ZlMz1g,99
41
- homa/vision/utils.py,sha256=O58TkXooa31mXJ1JQTykO2OXzmUm9H8Qvvk9lsIZnZ0,623
42
- homa/vision/concerns/Trainable.py,sha256=trnacyt3W3FrPON09uOTHeb06KT-uEi_oMzJonTwjL0,835
43
- homa/vision/concerns/__init__.py,sha256=UnZfL_YH4IwNqip1wokoWJHe6fn4pE0ePtchTuykxJY,33
44
- homa/vision/modules/ResnetModule.py,sha256=eFudBnILD6OmgQtcW_CQQ8aZ62NEa4HyZ15-lobTtt0,712
45
- homa/vision/modules/StochasticResnetModule.py,sha256=zSfx6FW5c5NfHMDGw7MTbaxQ3EmyKV1WVnWqH7G7CDc,298
46
- homa/vision/modules/__init__.py,sha256=kGlcc0BvYjuT_pBijI54VXLoWluPMfLzif1eO_9RoJc,98
47
- homa-0.1.1.dist-info/METADATA,sha256=b5C7qLYoMVkSisQwDbn07_6E3yE6Roxrz4651KKebRM,539
48
- homa-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
49
- homa-0.1.1.dist-info/entry_points.txt,sha256=tJZzjs-f2QvFe3ES8Qta8IE5sAbeE8-cyZ_UtbgqG4s,51
50
- homa-0.1.1.dist-info/top_level.txt,sha256=tmOfy2tuaAwc3W5-i6j61_vYJsXgR4ivBWkhJ3ZtJDc,5
51
- homa-0.1.1.dist-info/RECORD,,
File without changes