code: def model_simple():
      with ops.Graph().as_default() as g:
          _TRUE_W = 3.0
          _TRUE_b = 2.0
          _NUM_EXAMPLES = 1000
          inputs = np.random.randn(_NUM_EXAMPLES)
          noises = np.random.randn(_NUM_EXAMPLES)
          desired_y = inputs * _TRUE_W + _TRUE_b + noises
  
          W = tf.Variable(5.0, name="W", dtype=tf.float64)
          b = tf.Variable(0.0, name="b", dtype=tf.float64)
          variables = [W, b]
          with tf.GradientTape() as tape:
              predicted_y = W * inputs + b
              loss = tf.reduce_mean(tf.square(predicted_y - desired_y))
              gradients = tape.gradient(loss, variables)
      return g, gradients, variables
  
file_path: autodist/tests/test_graph_item.py
imports: import numpy
  import pytest
  import tensorflow
  from tensorflow.python import ops
  from tensorflow.python.keras.optimizer_v2 import adadelta
  from tensorflow.python.keras.optimizer_v2 import adagrad
  from tensorflow.python.keras.optimizer_v2 import adam
  from tensorflow.python.keras.optimizer_v2 import adamax
  from tensorflow.python.keras.optimizer_v2 import ftrl
  from tensorflow.python.keras.optimizer_v2 import gradient_descent
  from tensorflow.python.keras.optimizer_v2 import nadam
  from tensorflow.python.keras.optimizer_v2 import rmsprop
  from tensorflow.python.training.training_util import get_or_create_global_step
  from autodist import graph_item
  from autodist.kernel.common.op_info import UPDATE_OP_VAR_POS
label_desc: Use image node_id 1 for calling a global function with example usage: model_simple() and returns: g,  gradients,  variables