This seems like a silly, trivial question, but I just want to confirm it in case I'm missing something.
I'm trying to train a ReLU neural network, which is supposed to be a function that satisfies some conditions. For example, I want the network $\mathcal{N}(x)$ to satisfy $\mathcal{N}(x) \leq \eta, \ \forall x \in D_1$, and $\mathcal{N}(x) \geq \eta, \ \forall x \in D_2$, where $D_1 \cup D_2$ is the training data set.
I incorporate these conditions as a custom loss function as follows:
$$L := \cup_{x \in D_1} \mathrm{ReLU}( \mathcal{N}(x) - \eta) + \cup_{x \in D_2} \mathrm{ReLU}(-\mathcal{N}(x) + \eta) $$
The idea is that if $L = 0$, then the conditions are satisfied for $\mathcal{N}(x)$. So when I train the network, I ensure that the epoch loss is 0 (that's when the algorithm converges). If it matters, I use an SGD optimization technique for training.
So it is safe to say that after training, the network for sure satisfies those conditions with a 100% guarantee over the training data set, right?
I understand that this may not be the case for random unseen data, but I just want to make sure that the guarantee holds for the training data set, and it will not be required to validate this a posteriori.