code: def update_W(self, U: Tensor, y_one_hot: Tensor, data: Data):
      optimizer = torch.optim.SGD(self.parameters(), lr=eta_W)
      self.train()
      optimizer.zero_grad()
      pred = self(U)
      loss = F.mse_loss(
          pred[data.trainval_mask],
          y_one_hot[data.trainval_mask,],
          reduction="sum",
      )
      loss.backward()
      optimizer.step()
      return self(U).data, self.W.weight.data
  
file_path: pytorch_geometric/examples/ogc.py
imports: import argparse
  import os.path
  import time
  import warnings
  import torch
  import torch.nn.functional
  from torch import Tensor
  import torch_geometric.transforms
  from torch_geometric.data import Data
  from torch_geometric.datasets import Planetoid
  from torch_geometric.utils import one_hot
label_desc: Use image node_id 4 for calling the LinearNeuralNetwork obj's underlying member method code with example usage: obj.update_W(U, y_one_hot, data) and returns: self,  self