learning to learn
1.0.0
python train.py --problem=mnist --save_path=./mnist
コマンドラインフラグ:
save_path
: 存在する場合、オプティマイザは評価パフォーマンスが向上するたびに指定されたパスに保存されます。num_epochs
: トレーニング エポックの数。log_period
: 平均パフォーマンスと時間が報告されるまでのエポック。evaluation_period
: オプティマイザーが評価される前のエポック。evaluation_epochs
: 評価エポックの数。problem
: トレーニングする問題。以下の問題セクションを参照してください。num_steps
: 最適化ステップの数。unroll_length
: オプティマイザーのアンロール ステップの数。learning_rate
: 学習率。second_derivatives
: true
の場合、オプティマイザは問題で指定された損失関数を通じて 2 次導関数を計算しようとします。 python evaluate.py --problem=mnist --optimizer=L2L --path=./mnist
コマンドラインフラグ:
optimizer
: Adam
またはL2L
。path
: 保存されたオプティマイザーへのパス。L2L L2L
イザーを使用する場合にのみ関係します。learning_rate
: 学習率。Adam オプティマAdam
を使用する場合にのみ関係します。num_epochs
: 評価エポックの数。seed
: 乱数生成のシード。problem
: 評価する問題。以下の問題セクションを参照してください。num_steps
: 最適化ステップの数。 トレーニングおよび評価スクリプトは、次の問題をサポートしています (詳細については、 util.py
参照してください)。
simple
: 1 変数の 2 次関数。simple-multi
: 2 変数の 2 次関数。変数の 1 つは学習されたオプティマイザーを使用して最適化され、もう 1 つは Adam を使用して最適化されます。quadratic
: バッチ処理された 10 変数の二次関数。mnist
: 2 層完全接続ネットワークを使用した Mnist 分類。cifar
: 畳み込みニューラル ネットワークを使用した Cifar10 分類。cifar-multi
: 畳み込みニューラル ネットワークを使用した Cifar10 分類。2 つの独立した学習済みオプティマイザーが使用されます。 1 つは畳み込み層からのパラメーターを最適化するもので、もう 1 つは完全に接続された層からのパラメーターを最適化するものです。新しい問題は非常に簡単に実装できます。 train.py
を見ると、 MetaOptimizer
クラスのmeta_minimize
メソッドに、最小化したい損失関数を生成する TensorFlow オペレーションを返す関数が与えられていることがわかります (例については、 problems.py
参照)。
Python の副作用を伴うすべての操作 (キューの作成など) は、 meta_minimize
に渡される関数の外部で実行する必要があることが重要です。 problems.py
のcifar10
関数は、TensorFlow キューを使用する損失関数の良い例です。
免責事項: これは Google の公式製品ではありません。