def forward(self, hidden_states):
    '\n        Input:\n            hidden_states[batch, seq_len+cls_dim, hidden_dim](0 dim is cls)\n        Output:\n            x_pred[batch, seq_len+cls_dim, 2*max_size[0]+1]\n            y_pred[batch, seq_len+cls_dim, 2*max_size[1]+1]\n            type_pred[batch, seq_len+cls_dim, type_size]\n        '
    hidden_states = hidden_states[:, (self.cls_in_input + self.rel_in_input):, :]
    x_pred = self.x_pooling(hidden_states)
    y_pred = self.y_pooling(hidden_states)
    type_pred = self.type_pooling(hidden_states)
    return (x_pred, y_pred, type_pred)
Input:
    hidden_states[batch, seq_len+cls_dim, hidden_dim](0 dim is cls)
Output:
    x_pred[batch, seq_len+cls_dim, 2*max_size[0]+1]
    y_pred[batch, seq_len+cls_dim, 2*max_size[1]+1]
    type_pred[batch, seq_len+cls_dim, type_size]
def forward(self, hidden_states):
    '\n        Input:\n            hidden_states[batch, seq_len+cls_dim, hidden_dim](0 dim is cls)\n        Output:\n            x_pred[batch, seq_len+cls_dim, 2*max_size[0]+1]\n            y_pred[batch, seq_len+cls_dim, 2*max_size[1]+1]\n            type_pred[batch, seq_len+cls_dim, type_size]\n        '
    hidden_states = hidden_states[:, (self.cls_in_input + self.rel_in_input):, :]
    x_pred = self.x_pooling(hidden_states)
    y_pred = self.y_pooling(hidden_states)
    type_pred = self.type_pooling(hidden_states)
    return (x_pred, y_pred, type_pred)