class_docstr: Text Pooling used in OpenCLIP
class_docstr_tok: ["Text","Pooling","used","in","OpenCLIP"]
code: def forward(self, x, seq_len):
      assert x.ndim == 3
      # x is of shape B x L x D
      # take features from the eot embedding (eot_token is the highest number in each sequence)
      x = x[torch.arange(x.shape[0]), seq_len]
      x = self.proj(x)
      return x
  
imports: import einops
  import numpy
  import torch
  import torch.nn
label_desc: Use image node_id 2 for calling the SelectEOSAndProject obj's underlying member method code with example usage: obj.forward(x, seq_len) and returns: x