in vihds/config.py [0:0]
def proc_data(data_settings):
# Group-level parameter assignments for each device
groups_list = [[k, v] for k, v in data_settings.groups.items()]
data_settings.component_maps = OrderedDict()
for k, group in groups_list:
data_settings.component_maps[k] = OrderedDict(zip(data_settings.devices, group))
# Total number of group-level parameters
data_settings.device_depth = sum([depth(cm.values()) for k, cm in data_settings.component_maps.items()])
# Relevance vectors for decoding multi-hot vector into multiple one-hot vectors
data_settings.relevance_vectors = OrderedDict()
k1 = 0
for k, group in groups_list:
k2 = depth(group) + k1
rv = np.zeros(data_settings.device_depth)
rv[k1:k2] = 1.0
# print("Relevance for %s: "%k + str(rv))
if k in data_settings.default_devices:
rv[k1 + data_settings.default_devices[k]] = 0.0
data_settings.relevance_vectors[k] = rv.astype(np.float32)
k1 = k2
# Manually curated device list: map from device names to 0.0, 1.0, ...
data_settings.device_map = dict(zip(data_settings.devices, (float(v) for v in range(len(data_settings.devices)))))
# Map from device indices (as ints) to device names
data_settings.device_idx_to_device_name = dict(enumerate(data_settings.devices))
# Map from device indices (as floats) to device names
data_settings.device_lookup = {v: k for k, v in data_settings.device_map.items()}
return data_settings