def __init__(self, used_concepts, input_dims, hidden_dims, parameter_resolution='deterministic', vse_attribute_agnostic=False, args=None): super().__init__() self.used_concepts = used_concepts self.input_dims = input_dims self.hidden_dims = hidden_dims self.parameter_resolution = parameter_resolution self.args = args #pdb.set_trace() for i, nr_vars in enumerate( ['attribute', 'relation', 'temporal', 'time']): if nr_vars not in self.used_concepts: continue setattr(self, 'embedding_' + nr_vars, concept_embedding.ConceptEmbedding(vse_attribute_agnostic)) tax = getattr(self, 'embedding_' + nr_vars) rec = self.used_concepts[nr_vars] for a in rec['attributes']: tax.init_attribute(a, self.input_dims[1 + i], self.hidden_dims[1 + i]) for (v, b) in rec['concepts']: tax.init_concept(v, self.hidden_dims[1 + i], known_belong=b) if nr_vars == 'time': tax.exist_object = jacnn.LinearLayer(self.input_dims[1 + i], 1, activation=None) # TODO more complicated filter_in and out function tax.filter_in = jacnn.LinearLayer(self.input_dims[1 + i], 128, activation=None) tax.filter_out = jacnn.LinearLayer(self.input_dims[1 + i], 128, activation=None)
def __init__(self, input_dim, output_dim): super().__init__() self.input_dim = input_dim self.output_dim = output_dim self.map = jacnn.LinearLayer(input_dim, output_dim, activation=None)