def __init__(self): super(s2vNet2, self).__init__() self.conv1 = MultiS2V(node_input_channels, output_channels, node_features) self.conv2 = MultiS2V(output_channels, output_channels, node_features) # self.lin1 = Linear(6,6) # self.lin2 = Linear(6,6) self.lin1 = MList( [Lin(output_channels[i], output_channels[i]) for i in range(3)]) self.lin2 = MList( [Lin(output_channels[i], output_channels[i]) for i in range(3)])
def __init__(self,node_input_channels,output_channels,node_feature_channels=(6,6,4),iteration_num=1): super(self.__class__,self).__init__() ##### TODO self.category = 3 ##### need more general module assert(node_input_channels.shape == (self.category,)) # assert(edge_channels.shape == (self.category,self.category)) assert(output_channels.shape == (self.category,)) # assert(edge_channels.shape == (self.category,self.category)) self.lin1 = MList([Lin(node_input_channels[i],node_feature_channels[i]) for i in range(self.category)]) self.lin2 = MList([MList([Lin(node_feature_channels[i],node_feature_channels[j]) for j in range(self.category)]) for i in range(self.category)]) self.lin3 = MList([Lin(node_feature_channels[i],node_feature_channels[i]) for i in range(self.category)]) # self.lin4 = MList([MList([Lin(edge_channels[i][j],node_feature_channels[j]) for j in range(self.category)]) for i in range(self.category)]) self.lin5 = MList([Lin(2*node_feature_channels[i],output_channels[i]) for i in range(self.category)]) self.lin6 = MList([MList([Lin(node_feature_channels[i],node_feature_channels[j]) for j in range(self.category)]) for i in range(self.category)]) self.lin7 = MList([Lin(node_feature_channels[i],node_feature_channels[i]) for i in range(self.category)]) self.node_input_channels = node_input_channels self.node_feature_channels = node_feature_channels # self.edge_channels = edge_channels self.output_channels = output_channels self.iteration_num = iteration_num
def __init__(self, MODEL, c_node_in, c_node_out, c_hidden = 8): super(self.__class__,self).__init__() self.category = len(c_node_in) assert(c_node_in.shape == (self.category,)) # assert(c_edge.shape == (self.category,self.category)) assert(c_node_out.shape == (self.category,)) # assert(c_edge.shape == (self.category,self.category)) self.c_node_in = c_node_in # self.c_edge = c_edge self.c_node_out = c_node_out self.c_hidden = c_hidden self.model = MList([MList([MODEL((c_node_in[i],c_node_in[j]),c_hidden) for j in range(self.category)]) for i in range(self.category)]) self.lin = MList([Linear(self.category*c_hidden,c_node_out[i]) for i in range(self.category)])
def __init__(self, MODEL, channels, c_edge): super(self.__class__,self).__init__() self.layer_num = channels.shape[0]-1 self.channels = channels self.c_edge = c_edge self.models = MList([HeterogeneousGraph(MODEL,channels[i],channels[i+1],c_edge) for i in range(self.layer_num)])