variable global
A veces necesitamos definir la misma variable global en diferentes archivos, como vocab_size, etc. Si la cambiamos manualmente en cada archivo, no solo es propenso a errores de dedos grandes, sino también en el proceso de ajuste de parámetros posterior. inconveniente cambiar. Para resolver este problema, creamos un archivo hyperparameters.py y logramos el objetivo llamando a un módulo que escribimos de antemano.
Para aclarar, necesitamos tres archivos python aquí, colocados en la misma carpeta:
- module.py se usa para definir módulos
- hyperparameters.py se utiliza para definir hiperparámetros (es decir, variables globales)
- main.py llama a los hiperparámetros a través de hyperparameters.py
A continuación se explica el contenido de cada archivo
module.py
def _init():
global _global_dict
_global_dict = {
}
def set_value(key,value):
_global_dict[key] = value
def get_value(key,defValue=None):
try:
return _global_dict[key]
except KeyError:
return defValue
hiperparámetros.py
import module as global_var
global_var.set_value('vocab_size', 20000)
global_var.set_value('unk_token', '<unk>')
global_var.set_value('student_numbers', [1, 2, 3])
principal.py
from hyperparameters import global_var
vocab_size = global_var.get_value('vocab_size')
# vocab_size = 20000
batch_size = global_var.get_value('batch_size')
# batch_size = None 因为没有在hyperparameters.py中定义
De hecho, después de definir los dos archivos module.py e hyperparameters.py , cada archivo que necesita compartir hiperparámetros solo necesita pasar para obtener parámetros from hyperparameters import global_var
a través de la palabra clave global_var