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.
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PKG-INFO +1 -1
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/kernels.py +1 -1
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/tm.py +10 -2
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/PKG-INFO +1 -1
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/setup.py +1 -1
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/LICENSE +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/__init__.py +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/tools.py +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA/utils.py +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/SOURCES.txt +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/dependency_links.txt +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/requires.txt +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/PyHierarchicalTsetlinMachineCUDA.egg-info/top_level.txt +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/README.md +0 -0
- {PyHierarchicalTsetlinMachineCUDA-0.2.9 → PyHierarchicalTsetlinMachineCUDA-0.3.0}/setup.cfg +0 -0
|
@@ -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[
|
|
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")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|