  
      # check with the functional API
      model = Model(inp, outp)
  
      actual_output = model.predict(input_data)
      actual_output_shape = actual_output.shape
      for expected_dim, actual_dim in zip(expected_output_shape,
                                          actual_output_shape):
          if expected_dim is not None:
              assert expected_dim == actual_dim
 
</s> remove     actual_output = model.predict(data)
 </s> add     actual_output = model.predict(data, verbose=0) </s> remove     actual_output = model.predict(input_data)
 </s> add     actual_output = model.predict(input_data, verbose=0) </s> remove     assert ((_BACKEND == "cpu" and keras.__version__ in ("2.4.0", "2.6.0", "2.7.0", "2.8.0")) or
 </s> add     assert ((_BACKEND == "cpu" and keras.__version__ in ("2.7.0", "2.8.0", "2.9.0")) or </s> remove         _output = recovered_model.predict(input_data)
 </s> add         _output = recovered_model.predict(input_data, verbose=0)
    actual_output = model.predict(input_data, verbose=0)
  
      # check with the functional API
      model = Model(inp, outp)
  
    actual_output = model.predict(input_data, verbose=0)
      actual_output_shape = actual_output.shape
      for expected_dim, actual_dim in zip(expected_output_shape,
                                          actual_output_shape):
          if expected_dim is not None:
              assert expected_dim == actual_dim
keep keep keep keep replace keep keep keep keep keep
 Update TF to 2.9
    - Update TF to 2.7 to 2.9
    - Bump dependencies
    - Remove decode from pynvml calls
    - force keras predict functions to non-verbose
    - update tests
    - update Tensorboard logging
    - Update docs 
tests/lib/model/layers_test.py