code: def test_lazy_linear(weight, bias, device):
      x = torch.randn(3, 4, 16, device=device)
      lin = Linear(
          -1, 32, weight_initializer=weight, bias_initializer=bias
      )
      lin = lin.to(device)
      copied_lin = copy.deepcopy(lin)
  
      assert lin.weight.device == device
      assert lin.bias.device == device
      assert str(lin) == "Linear(-1, 32, bias=True)"
      assert lin(x).size() == (3, 4, 32)
      assert str(lin) == "Linear(16, 32, bias=True)"
  
      assert copied_lin.weight.device == device
      assert copied_lin.bias.device == device
      assert copied_lin(x).size() == (3, 4, 32)
  
imports: import copy
  import warnings
  from typing import List
  import pytest
  import torch
  from torch import Tensor
  from torch.nn import Linear
  from torch.nn.parameter import UninitializedParameter
  import torch_geometric.backend
  from torch_geometric.nn import HeteroDictLinear, HeteroLinear, Linear
  from torch_geometric.profile import benchmark
  from torch_geometric.testing import withCUDA, withPackage
  from torch_geometric.typing import pyg_lib
  from torch_geometric.utils import cumsum
label_desc: Use image node_id 2 for calling a global function with example usage: test_lazy_linear(weight, bias, device) without return types