class_docstr: ConvBlock3D
class_docstr_tok: ["ConvBlock3D"]
code: def _cat_stream_buffer(
      self, x: Tensor, device: torch.device
  ) -> Tensor:
      if self.activation is None:
          self._setup_activation(x.shape)
      x = torch.cat((self.activation.to(device), x), 2)
      self._save_in_activation(x)
      return x
  
imports: from typing import Any, Callable, Optional, Tuple, Union
  from einops import rearrange
  import torch
  from torch.nn.modules.utils import _triple
  import torch.nn.functional
  from torch import nn, Tensor
  from towhee.models.utils.general_utils import make_divisible
  from towhee.models.utils.causal_module import CausalModule
  from towhee.models.layers.activations import HardSigmoid
  from towhee.models.layers.conv_bn_activation import Conv2dBNActivation, Conv3DBNActivation
  from towhee.models.layers.padding_functions import same_padding
  from towhee.models.layers.tf_avgpool3d import TfAvgPool3D
  from towhee.models.layers.temporal_cg_avgpool3d import TemporalCGAvgPool3D
label_desc: Use image node_id 4 for calling the ConvBlock3D obj's underlying member method code with example usage: obj._cat_stream_buffer(x, device) and returns: x