code: def forward(self, input, other):
      linear_node = F.linear(input, other, bias=None)
      softmax_node = F.softmax(linear_node, self.softmax_dim)
      return softmax_node
  
imports: import pytest
  import torch
  import torch.nn
  import torch.nn.functional
  from colossalai._analyzer.fx.graph_module import ColoGraphModule
  from colossalai._analyzer.fx.passes.shape_prop import shape_prop_pass
  from colossalai._analyzer.fx.tracer.tracer import ColoTracer
  from colossalai.auto_parallel.tensor_shard.node_handler.linear_handler import LinearFunctionHandler
  from colossalai.auto_parallel.tensor_shard.node_handler.softmax_handler import SoftmaxHandler
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import OperationData, OperationDataType, StrategiesVector
  from colossalai.device.device_mesh import DeviceMesh
  from colossalai.initialize import launch
  from colossalai.logging import disable_existing_loggers
  from colossalai.testing import parameterize, rerun_if_address_is_in_use, run_on_environment_flag, spawn
  from tests.test_auto_parallel.test_tensor_shard.test_node_handler.utils import numerical_test_for_node_strategy
label_desc: Use image node_id 2 for calling the LinearSplitModel obj's underlying member method code with example usage: obj.forward(input, other) and returns: softmax_node