fix bugs in hyperneat;
related to https://github.com/EMI-Group/tensorneat/issues/17
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
from jax import vmap
|
from jax import vmap, numpy as jnp
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from .base import BaseSubstrate
|
from .base import BaseSubstrate
|
||||||
@@ -12,9 +12,9 @@ class DefaultSubstrate(BaseSubstrate):
|
|||||||
def __init__(self, num_inputs, num_outputs, coors, nodes, conns):
|
def __init__(self, num_inputs, num_outputs, coors, nodes, conns):
|
||||||
self.inputs = num_inputs
|
self.inputs = num_inputs
|
||||||
self.outputs = num_outputs
|
self.outputs = num_outputs
|
||||||
self.coors = np.array(coors)
|
self.coors = jnp.array(coors)
|
||||||
self.nodes = np.array(nodes)
|
self.nodes = jnp.array(nodes)
|
||||||
self.conns = np.array(conns)
|
self.conns = jnp.array(conns)
|
||||||
|
|
||||||
def make_nodes(self, query_res):
|
def make_nodes(self, query_res):
|
||||||
return self.nodes
|
return self.nodes
|
||||||
@@ -22,7 +22,8 @@ class DefaultSubstrate(BaseSubstrate):
|
|||||||
def make_conns(self, query_res):
|
def make_conns(self, query_res):
|
||||||
# change weight of conns
|
# change weight of conns
|
||||||
# the last column is the weight
|
# the last column is the weight
|
||||||
return self.conns.at[:, -1].set(query_res)
|
# print(f"{self.conns.shape=}, {query_res.shape=}")
|
||||||
|
return self.conns.at[:, -1].set(query_res.flatten())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def query_coors(self):
|
def query_coors(self):
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ def analysis_substrate(input_coors, output_coors, hidden_coors):
|
|||||||
) # input_idx, output_idx, weight
|
) # input_idx, output_idx, weight
|
||||||
conns[:, :2] = correspond_keys
|
conns[:, :2] = correspond_keys
|
||||||
|
|
||||||
print(query_coors, nodes, conns)
|
# print(query_coors, nodes, conns)
|
||||||
return query_coors, nodes, conns
|
return query_coors, nodes, conns
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user