code: def test_vgp() -> None:
      X = tf.Variable(
          tf.zeros((1, Datum.n_inputs), dtype=default_float()),
          shape=(None, None),
          trainable=False,
      )
      Y = tf.Variable(
          tf.zeros((1, Datum.n_outputs), dtype=default_float()),
          shape=(None, None),
          trainable=False,
      )
  
      model = gpflow.models.VGP(
          (X, Y),
          gpflow.kernels.SquaredExponential(),
          gpflow.likelihoods.Gaussian(),
          num_latent_gps=Datum.n_outputs,
      )
  
      @tf.function
      def model_closure() -> tf.Tensor:
          return -model.elbo()
  
      model_closure()  # Trigger compilation.
  
      gpflow.models.vgp.update_vgp_data(model, (Datum.X, Datum.Y))
      opt = gpflow.optimizers.Scipy()
  
      # simply test whether it runs without erroring...:
      opt.minimize(
          model_closure,
          variables=model.trainable_variables,
          options=dict(maxiter=3),
          compile=True,
      )
  
file_path: GPflow/tests/integration/test_dynamic_shapes.py
imports: import numpy
  import pytest
  import tensorflow
  from check_shapes import ShapeChecker
  import gpflow
  from gpflow.base import AnyNDArray
  from gpflow.config import default_float
label_desc: Use image node_id 1 for calling a global function with example usage: test_vgp() and returns: unknown