PyHierarchicalTsetlinMachineCUDA 0.2.9__tar.gz → 0.3.0__tar.gz

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 (15) hide show
  1. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PKG-INFO +1 -1
  2. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/kernels.py +1 -1
  3. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/tm.py +10 -2
  4. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/PKG-INFO +1 -1
  5. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/setup.py +1 -1
  6. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/LICENSE +0 -0
  7. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/__init__.py +0 -0
  8. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/tools.py +0 -0
  9. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/utils.py +0 -0
  10. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/SOURCES.txt +0 -0
  11. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/dependency_links.txt +0 -0
  12. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/requires.txt +0 -0
  13. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/top_level.txt +0 -0
  14. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/README.md +0 -0
  15. {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyHierarchicalTsetlinMachineCUDA
3
- Version: 0.2.9
3
+ Version: 0.3.0
4
4
  Summary: Hierarchical Tsetlin Machine Architecture.
5
5
  Home-page: https://github.com/cair/PyHierarchicalTsetlinMachineCUDA/
6
6
  Author: Ole-Christoffer Granmo
@@ -321,7 +321,7 @@ code_update = """
321
321
  int index = blockIdx.x * blockDim.x + threadIdx.x;
322
322
  int stride = blockDim.x * gridDim.x;
323
323
 
324
- int non_zero_children[361];
324
+ int non_zero_children[MAX_NUMBER_OF_OR_GROUP_CHILDREN];
325
325
 
326
326
  /* Copy state to local memory for efficiency */
327
327
  curandState localState = state[index];
@@ -97,10 +97,16 @@ class CommonTsetlinMachine():
97
97
  if self.hierarchy_structure[d][0] != OR_GROUP: # OR_GROUP reuses the same TA
98
98
  self.number_of_ta_teams = self.hierarchy_structure[self.depth - d - 1][1] * self.number_of_ta_teams
99
99
 
100
+ # Identifies the larget number of OR_GROUP children (for allocating local memory)
101
+ self.max_number_of_or_group_children = 0
102
+ for d in range(1, self.depth):
103
+ if self.hierarchy_structure[d][0] == OR_GROUP and self.max_number_of_or_group_children < self.hierarchy_structure[d][1]:
104
+ self.max_number_of_or_group_children = self.hierarchy_structure[d][1]
105
+
100
106
  # Calculates number of literal chunks overall for the feature vector (ignores OR- and AND alternatives)
101
107
  self.number_of_literal_chunks = self.number_of_literal_chunks_per_leaf
102
108
  for d in range(self.depth - 1, 0, -1):
103
- if (self.hierarchy_structure[d][0] == OR_GROUP or self.hierarchy_structure[d][0] == AND_GROUP):
109
+ if (self.hierarchy_structure[d][0] == OR_GROUP or self.hierarchy_structure[d][0] == AND_GROUP): # OR_GROUP and AND_GROUP join the features of their children
104
110
  self.number_of_literal_chunks *= self.hierarchy_structure[d][1]
105
111
 
106
112
  self.np_rng = np.random.default_rng(seed)
@@ -134,9 +140,11 @@ class CommonTsetlinMachine():
134
140
  #define OR_GROUP %d
135
141
  #define OR_ALTERNATIVES %d
136
142
 
143
+ #define MAX_NUMBER_OF_OR_GROUP_CHILDREN %d
144
+
137
145
  #define NEGATIVE_CLAUSES %d
138
146
  #define FLIP_POLARITY %d
139
- """ % (self.number_of_clauses, self.depth, self.hierarchy_size[1], self.number_of_ta_teams, self.number_of_literals_per_leaf, self.number_of_literal_chunks_per_leaf, self.number_of_literal_chunks, self.number_of_state_bits, self.boost_true_positive_feedback, self.s, self.T, self.q, self.log_scale, AND_GROUP, AND_ALTERNATIVES, OR_GROUP, OR_ALTERNATIVES, self.negative_clauses, self.flip_polarity)
147
+ """ % (self.number_of_clauses, self.depth, self.hierarchy_size[1], self.number_of_ta_teams, self.number_of_literals_per_leaf, self.number_of_literal_chunks_per_leaf, self.number_of_literal_chunks, self.number_of_state_bits, self.boost_true_positive_feedback, self.s, self.T, self.q, self.log_scale, AND_GROUP, AND_ALTERNATIVES, OR_GROUP, OR_ALTERNATIVES, self.max_number_of_or_group_children, self.negative_clauses, self.flip_polarity)
140
148
 
141
149
  mod_prepare = SourceModule(parameters + kernels.code_header + kernels.code_prepare, no_extern_c=True)
142
150
  self.prepare_weights = mod_prepare.get_function("prepare_weights")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyHierarchicalTsetlinMachineCUDA
3
- Version: 0.2.9
3
+ Version: 0.3.0
4
4
  Summary: Hierarchical Tsetlin Machine Architecture.
5
5
  Home-page: https://github.com/cair/PyHierarchicalTsetlinMachineCUDA/
6
6
  Author: Ole-Christoffer Granmo
@@ -2,7 +2,7 @@ from setuptools import *
2
2
 
3
3
  setup(
4
4
  name='PyHierarchicalTsetlinMachineCUDA',
5
- version='0.2.9',
5
+ version='0.3.0',
6
6
  author='Ole-Christoffer Granmo',
7
7
  author_email='ole.granmo@uia.no',
8
8
  url='https://github.com/cair/PyHierarchicalTsetlinMachineCUDA/',