class_docstr: Paper (the version is important): https://arxiv.org/abs/2012.08986v2
  Code: https://github.com/mindspore-ai/models/tree/bdf2d8bcf11fe28e4ad3060cf2ddc818eacd8597/research/recommend/autodis
  We borrow the implementations from: https://github.com/Yura52/tabular-dl-num-embeddings/blob/main/bin/train4.py
  The paper is significantly different from the code (it looks like the code
  implements the first version of the paper). We implement the second version
  here. Not all technical details are given for the second version, so what we do
  here can be different from what authors actually did.
  Anyway, AutoDis (v2) is essentially the following sequence of layers (applied from
  left to right): [Linear(no bias), LeakyReLU, Linear(no bias), Softmax, Linear]
class_docstr_tok: ["Paper","(","the","version","is","important",")",":","https",":","\/\/arxiv.org\/abs\/2012.08986v2","Code",":","https",":","\/\/github.com\/mindspore-ai\/models\/tree\/bdf2d8bcf11fe28e4ad3060cf2ddc818eacd8597\/research\/recommend\/autodis","We","borrow","the","implementations","from",":","https",":","\/\/github.com\/Yura52\/tabular-dl-num-embeddings\/blob\/main\/bin\/train4.py","The","paper","is","significantly","different","from","the","code","(","it","looks","like","the","code","implements","the","first","version","of","the","paper",")",".","We","implement","the","second","version","here",".","Not","all","technical","details","are","given","for","the","second","version",",","so","what","we","do","here","can","be","different","from","what","authors","actually","did",".","Anyway",",","AutoDis","(","v2",")","is","essentially","the","following","sequence","of","layers","(","applied","from","left","to","right",")",":","[","Linear","(","no","bias",")",",","LeakyReLU",",","Linear","(","no","bias",")",",","Softmax",",","Linear","]"]
code: def forward(self, x: Tensor):
      x = self.first_layer(x)
      x = self.leaky_relu(x)
      x = self.second_layer(x)
      x = self.softmax(x / self.temperature)
      x = self.third_layer(x)
      return x
  
imports: from typing import List, Optional
  import torch
  from torch import Tensor, nn
  from ..constants import CATEGORICAL, FEATURES, LABEL, LOGITS, NUMERICAL
  from .custom_transformer import CLSToken, Custom_Transformer, _TokenInitialization
  from .utils import init_weights
label_desc: Use image node_id 2 for calling the AutoDis obj's underlying member method code with example usage: obj.forward(x) and returns: x