If you’ve created the patch with a max value of 0 by dividing by the max value of all patches (let’s call it patches_max), this would mean that patches_max would have to be extremely large.
Are you sure the zero value was created in this way?
Usually you wouldn’t normalize each instance with its min and max values, but would use the statistics from the training set. However, as I’m not familiar with your use case, I would still recommend to try out different methods.
If none is working, I would suggest to look into other parts of your training routine, which might be failing.