Closed
Description
I noticed in the source code there are some calls of generator.randint(1, 1e9)
1e9 is converted to float but in python 3.12 calling float in randint causes an error
System information.
- Python 3.12
- tf_keras 2.17.0
- tensorflow 2.17.0
Running with env variable: TF_USE_LEGACY_KERAS=1
Simple steps to reproduce:
import tensorflow as tf
tf.keras.utils.set_random_seed(10)
from tensorflow.keras.initializers import VarianceScaling
vs = VarianceScaling()
vs((3, 3))
Error log
Traceback (most recent call last):
File "/mnt/g/PycharmProjects/testing/first.py", line 8, in <module>
vs((3, 3))
File "/home/user/miniconda3/envs/t2/lib/python3.12/site-packages/tf_keras/src/initializers/initializers.py", line 648, in __call__
return self._generate_init_val(shape=shape, dtype=dtype, nonce=nonce)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/miniconda3/envs/t2/lib/python3.12/site-packages/tf_keras/src/initializers/initializers.py", line 663, in _generate_init_val
return self._random_generator.truncated_normal(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/miniconda3/envs/t2/lib/python3.12/site-packages/tf_keras/src/backend.py", line 2134, in truncated_normal
self._maybe_init()
File "/home/user/miniconda3/envs/t2/lib/python3.12/site-packages/tf_keras/src/backend.py", line 1976, in _maybe_init
self._seed = self._create_seed(self._seed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/miniconda3/envs/t2/lib/python3.12/site-packages/tf_keras/src/backend.py", line 2032, in _create_seed
return _SEED_GENERATOR.generator.randint(1, 1e9)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/miniconda3/envs/t2/lib/python3.12/random.py", line 336, in randint
return self.randrange(a, b+1)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/miniconda3/envs/t2/lib/python3.12/random.py", line 312, in randrange
istop = _index(stop)
^^^^^^^^^^^^
TypeError: 'float' object cannot be interpreted as an integer