settings.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # @FileName :common.py
  4. # @Time :2025/3/5 16:06
  5. # @Author :David
  6. # @Company: shenyang JY
  7. import os
  8. import random
  9. import numpy as np
  10. import tensorflow as tf
  11. from tensorflow.keras import backend as K
  12. def set_deterministic(seed=42):
  13. """设置所有可能的随机种子和环境变量"""
  14. # 设置Python内置随机种子
  15. random.seed(seed)
  16. # 设置NumPy随机种子
  17. np.random.seed(seed)
  18. # 设置TensorFlow随机种子
  19. tf.random.set_seed(seed)
  20. # 设置Keras后端随机种子
  21. K.set_floatx('float32')
  22. K.set_epsilon(1e-7)
  23. # 设置环境变量(影响CUDA和底层操作)
  24. os.environ['PYTHONHASHSEED'] = str(seed)
  25. os.environ['TF_DETERMINISTIC_OPS'] = '1'
  26. os.environ['TF_CUDNN_DETERMINISTIC'] = '1'
  27. # 配置GPU选项(如果使用GPU)
  28. gpus = tf.config.list_physical_devices('GPU')
  29. if gpus:
  30. try:
  31. for gpu in gpus:
  32. tf.config.experimental.set_memory_growth(gpu, True)
  33. tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
  34. tf.config.experimental.set_virtual_device_configuration(
  35. gpus[0],
  36. [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=1024)]
  37. )
  38. tf.config.set_soft_device_placement(True)
  39. except RuntimeError as e:
  40. print(e)
  41. # 设置并行线程数
  42. tf.config.threading.set_inter_op_parallelism_threads(1)
  43. tf.config.threading.set_intra_op_parallelism_threads(1)
  44. # 在程序初始化时调用
  45. set_deterministic(42)
  46. if __name__ == "__main__":
  47. run_code = 0