gradboard 0.1.11__py3-none-any.whl → 0.1.12__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.

Potentially problematic release.


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

gradboard/cycles.py CHANGED
@@ -37,6 +37,28 @@ def cosine(step: int, total_steps: int) -> float:
37
37
  return round((math.cos(angle) + 1) / 2, 8)
38
38
 
39
39
 
40
+ def semicircle(step: int, total_steps: int) -> float:
41
+ """
42
+ Get a sequence of numbers between 0 and 1 in the shape of a semi-circle with
43
+ diameter `total_steps'.
44
+ """
45
+ assert total_steps != 0
46
+ x = step / (total_steps - 0.999)
47
+ # x^2 + y^2 = r^2 = 1
48
+ # Therefore y^2 = 1 - x^2
49
+ # Therefore y^2 = (1 + x)(1 - x)
50
+ y_squared = (1 - x) * (1 + x)
51
+ return math.sqrt(y_squared)
52
+
53
+
54
+ def half_semicircle(step: int, total_steps: int) -> float:
55
+ """
56
+ Get a sequence of numbers between 0 and 1 in the shape of the descending
57
+ half of a cosine wave with wavelength 2*`total_steps`.
58
+ """
59
+ return semicircle(step, (total_steps * 2) - 1)
60
+
61
+
40
62
  def half_cosine(step: int, total_steps: int) -> float:
41
63
  """
42
64
  Get a sequence of numbers between 0 and 1 in the shape of the descending
@@ -112,19 +134,7 @@ class Cycle:
112
134
 
113
135
  self.reflect = reflect
114
136
 
115
- if callable(generating_function):
116
- self._generating_function = generating_function
117
- elif generating_function == "ascent":
118
- self._generating_function = ascent
119
- elif generating_function == "triangle":
120
- self._generating_function = triangle
121
- elif generating_function == "cosine":
122
- self._generating_function = cosine
123
- elif generating_function == "half_cosine":
124
- self._generating_function = half_cosine
125
- elif generating_function == "half_cycloid":
126
- self._generating_function = half_cycloid
127
- else:
137
+ if not callable(generating_function):
128
138
  raise NotImplementedError(
129
139
  "`generating_function` must be a callable object or one of "
130
140
  '"ascent", "triangle", "cosine", "half_cosine" or "half_cycloid"'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gradboard
3
- Version: 0.1.11
3
+ Version: 0.1.12
4
4
  Summary: Easily snowboard down gnarly loss gradients
5
5
  License: MIT
6
6
  Author: Nicholas Bailey
@@ -0,0 +1,8 @@
1
+ gradboard/__init__.py,sha256=57AkHusYwLCsusiVnajH5pMFKioRCj-3IjF9qpdOzE0,69
2
+ gradboard/cycles.py,sha256=lkFNBRYr3UnPTBc-S8Ud61qYYa3U-l3xOK4q-rs2IGc,10135
3
+ gradboard/optimiser.py,sha256=Iw1piQkQkWdNUW8d9f3iPrvP9qEGVxEKmerK7ATDgOI,6189
4
+ gradboard/scheduler.py,sha256=W146MgdTYz113R3M0qhVpk8kr6L1ioPS3pCFc3MhKYg,6507
5
+ gradboard-0.1.12.dist-info/LICENSE,sha256=0BAzJE5BqQ7Iixp_AFdB2W1uO-HCRX-Qfun8PHt6yVM,1073
6
+ gradboard-0.1.12.dist-info/METADATA,sha256=4JivgL-13eqBFxCJZvGyNa2Gg955h1ryr3G4UNvcWMg,2174
7
+ gradboard-0.1.12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
8
+ gradboard-0.1.12.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- gradboard/__init__.py,sha256=57AkHusYwLCsusiVnajH5pMFKioRCj-3IjF9qpdOzE0,69
2
- gradboard/cycles.py,sha256=e_me_9b_995VboDBgDISLLtipEDk03c-_BUgGY4D72Y,10019
3
- gradboard/optimiser.py,sha256=Iw1piQkQkWdNUW8d9f3iPrvP9qEGVxEKmerK7ATDgOI,6189
4
- gradboard/scheduler.py,sha256=W146MgdTYz113R3M0qhVpk8kr6L1ioPS3pCFc3MhKYg,6507
5
- gradboard-0.1.11.dist-info/LICENSE,sha256=0BAzJE5BqQ7Iixp_AFdB2W1uO-HCRX-Qfun8PHt6yVM,1073
6
- gradboard-0.1.11.dist-info/METADATA,sha256=C9GXzAG88an5j6E2BuJG6ui-er8hN_cqaR0OShXMmmU,2174
7
- gradboard-0.1.11.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
8
- gradboard-0.1.11.dist-info/RECORD,,