class_docstr: Helper class for decomposing conv3d with temporal kernel of 1 into conv2d on
  multiple temporal planes.
  In conv3d with temporal kernel 1 and input I, for output temporal index of t (O[:,:,t,:,:]),
  the conv can be expressed as:
  O[:,:,t,:,:] = conv3d(I[:,:,t,:,:])
               = conv2d(I[:,:,t,:,:])
  The full output can be obtained by concat O[:,:,t,:,:] for t in 0...T,
  where T is the length of I in temporal dimension.
class_docstr_tok: ["Helper","class","for","decomposing","conv3d","with","temporal","kernel","of","1","into","conv2d","on","multiple","temporal","planes",".","In","conv3d","with","temporal","kernel","1","and","input","I",",","for","output","temporal","index","of","t","(","O","[",":",",",":",",t",",",":",",",":","]",")",",","the","conv","can","be","expressed","as",":","O","[",":",",",":",",t",",",":",",",":","]","=","conv3d","(","I","[",":",",",":",",t",",",":",",",":","]",")","=","conv2d","(","I","[",":",",",":",",t",",",":",",",":","]",")","The","full","output","can","be","obtained","by","concat","O","[",":",",",":",",t",",",":",",",":","]","for","t","in","0","...","T",",","where","T","is","the","length","of","I","in","temporal","dimension","."]
code: def forward(self, x):
      out_tensor_list = []
      for idx in range(self.input_THW_tuple[0]):
          cur_tensor = self.conv2d_eq(x[:, :, idx]).unsqueeze(2)
          out_tensor_list.append(cur_tensor)
      return torch.cat(out_tensor_list, 2)
  
imports: from copy import deepcopy
  from typing import Tuple
  import torch
  import torch.nn
label_desc: Use image node_id 2 for calling the _Conv3dTemporalKernel1Decomposed obj's underlying member method code with example usage: obj.forward(x) and returns: torch