title: How to pass the input tensor of a model to a loss function?
body: <p>My goal is to create a custom loss function that calculates the loss based on <code>y_true</code>, <code>y_pred</code> and the tensor of the models input layer:</p>
  <pre class="lang-py prettyprint-override"><code>import numpy as np
  from tensorflow import keras as K
  
  input_shape = (16, 16, 1)
  
  input = K.layers.Input(input_shape)
  dense = K.layers.Dense(16)(input)
  output = K.layers.Dense(1)(dense)
  
  model = K.Model(inputs=input, outputs=output)
  
  
  def CustomLoss(y_true, y_pred):
    return K.backend.sum(K.backend.abs(y_true - model.input * y_pred))
  
  
  model.compile(loss=CustomLoss)
  model.fit(np.ones(input_shape), np.zeros(input_shape))
  </code></pre>
  <p>However, this code fails with the following error message:</p>
  <pre><code>TypeError: Cannot convert a symbolic Keras input/output to a numpy array. This error may indicate that you're trying to pass a symbolic value to a NumPy call, which is not supported. Or, you may be trying to pass Keras symbolic inputs/outputs to a TF API that does not register dispatching, preventing Keras from automatically converting the API call to a lambda layer in the Functional Model.
  </code></pre>
  <p>How can I pass the input tensor of my model to the loss function?</p>
  <p>Tensorflow Version: 2.4.1<br />
  Python Version: 3.8.8</p>