tf.keras.layers.PReLU outputs NaN on positive input
Hi @maybeLee, I tried to reproduce the issue, from the given constraint/dummy code, and i am able to get the error output as 
![image](https://github.com/tensorflow/tensorflow/assets/55061520/9c3b632a-0877-47c6-a4f6-386b8d731302)

and after spending some time over your issue, got to know, this issue may be arised due to mismatch in the package version. HI @AkashKumarSingh11032001 
My previous code is working for tensorflow 2.15.0 and it seems that this API does not support the `weights` parameter in 2.16.0.
Here is the adjusted code for 2.16.0:

```
import numpy as np
import tensorflow as tf
input = tf.constant(1.1234, dtype='float32')
out = tf.keras.layers.PReLU(alpha_initializer=tf.keras.initializers.Constant(np.inf))(input)
print(out)
``` Hi **@maybeLee** ,

I tried to run your code on colab using tf 2.15, 2.16 and tf-nightly versions faced same issue. Please find the [gist](https://colab.sandbox.google.com/gist/Venkat6871/b66ec0d29b22e32c1e7910b09688bf56/63823_2-15-2-16-nightly.ipynb) here for reference. We need to work on it, In few days i will provide a solution for it.

Thank you! Hi **@maybeLee** ,
- Could you please take a look at the comment from the developer in the raised PR? Also the pr got closed and try to contribute for the same.

Thank you!
### Issue type

Bug

### Have you reproduced the bug with TensorFlow Nightly?

Yes

### Source

source

### TensorFlow version

2.15.0

### Custom code

Yes

### OS platform and distribution

_No response_

### Mobile device

_No response_

### Python version

_No response_

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

Following the documentation, https://www.tensorflow.org/api_docs/python/tf/keras/layers/PReLU, tf.keras.layers.PReLU should  output the input if the input > 0 regardless of the weight. However, it outputs NaN when weight is infinity although input > 0.
I think the issue is located here:
https://github.com/tensorflow/tensorflow/blob/90d97b99797892f3d571f27076e4fcdfb1bde059/tensorflow/python/keras/layers/advanced_activations.py#L164
, where the calculation `inf*0` happens.
According to the documentation, I think it would be better to directly return input if input > 0.

Also, I quickly checked the PyTorch's implementation and I find that pytorch use the following code to do prelu:
```
(input > scalar_t(0)) ? input : weight * input;
```

https://github.com/pytorch/pytorch/blob/3bc2bb678150e02bfa2552b82572d771a892d0c3/aten/src/ATen/native/cpu/Activation.cpp#L1380


### Standalone code to reproduce the issue

```shell
import numpy as np
import tensorflow as tf
input = tf.constant(1.1234, dtype='float32')
weight = tf.constant(np.random.randn(1)*np.inf, dtype='float32')
out = tf.keras.layers.PReLU(weights=weight)(input)
print(out)
```
```


### Relevant log output

_No response_