グローバル変数
場合によっては、vocab_size などの同じグローバル変数を異なるファイルで定義する必要がある場合があります。各ファイルで手動で変更すると、大きなエラーが発生するだけでなく、後のパラメータ調整のプロセスでも発生します。変えるのに不便。この問題を解決するために、ファイルhyperparameters.pyを作成し、事前に作成したモジュールを呼び出すことで目的を達成します。
明確にするために、ここでは同じフォルダーに配置された 3 つの Python ファイルが必要です。
- module.py はモジュールを定義するために使用されます
- hyperparameters.py はハイパーパラメータ (つまり、グローバル変数) を定義するために使用されます。
- main.py は、hyperparameters.py を通じてハイパーパラメータを呼び出します。
以下に各ファイル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
ハイパーパラメータ.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])
main.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中定义
実際、module.pyとhyperparameters.py という2 つのファイルを定義した後、ハイパーパラメータを共有する必要がある各ファイルは、global_varfrom hyperparameters import global_var
キーワードを介してパラメータを取得するために渡すだけで済みます。