num_action = 128 torch.manual_seed(seed) random.seed(seed) Transition = namedtuple('Transition', ['state', 'action', 'reward', 'next_state']) relation_dim = get_relation_num() INPUT_SIZE_liner = relation_dim + 128 INPUT_SIZE_GRU = 3 * 128 OUT_SIZE_liner = 128 HIDDEN_SIZE_GRU = relation_dim node_emb_matrix = get_node_emb_matrix() edge_emb_dic = get_relation_emb_dic() def _Max(matrix): """ 取矩阵每一列最大值得到一行向量 :param matrix: :return: """ return matrix[torch.argmax(matrix, dim=0), torch.LongTensor(range(matrix.shape[1]))].view( 1, matrix.shape[1]) class PolicyNet(nn.Module):
def __init__(self): self.FA = nn.Linear(INPUT_SIZE_liner, OUT_SIZE_liner) self.GRUCell = nn.GRUCell(INPUT_SIZE_GRU, HIDDEN_SIZE_GRU) self.maxPool = nn.MaxPool1d(1, 1) self.node_emb_matrix = get_node_emb_matrix() self.edge_emb_dic = get_relation_emb_dic()