Skip to content

float number in randint Python 3.12 #803

Closed
@dk222dk

Description

@dk222dk

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 

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions