目次
1はじめに:
ケラス提供のapi実装ニューラルネットワークを使用する方法を学びますが、自己定義された循環とカスタムトレーニングのための彼の優れたパッケージのため、友好的ではありません。
Eageを使用でき、Eagerをリサイクルに使用できます
2はじめに:
TensorFlowの熱心なモードは、計算グラフを作成せずに操作の結果をすぐに評価できる必須のプログラミング環境です。
熱心なグラフ操作モード:
簡単に言えば、図の演算子は、描画のすべてのステップに相当し、熱心に結果を導くことができます
2.1 Eagerモードは学習とモデルのデバッグに便利です
Eagerモードは、TensorFlowを使用してモデルをデバッグすることを非常に容易にし、ネットワークデバッグの柔軟性と初心者にとってのtensorflowの使いやすさを向上させます。ここではテンソルフローのインタラクティブモードと呼ぶことができます
- 直感的なインターフェイスでコードを自然に作成し、Pythonデータ構造を使用します。
- 小さなモデルと小さなデータをすばやく反復します。
インタラクティブな環境でデバッグを直接検査し、モデルを実行し、変更をテストするのが簡単になります。このプロセス中、コードはすぐにエラーを報告します。
自然制御フローイーガーモードは、グラフ制御フローの代わりにPython制御フローを使用するため、動的モデルの作成が簡素化されます。
熱心な実行は、ほとんどのTensorFlowオペレーションとGPUアクセラレーションをサポートします。
2.2イーガーモードの動作特性
- Eagerモードでは、TensorFlowオペレーションがすぐに実行され、その値がPython に返されます(後の例を参照)。
- tf.Tensorオブジェクトは、計算グラフのノードのシンボルハンドルではなく特定の値を参照します(変更可能)。
- Tensorflowは EagerモードのNumPyでうまく機能します。TensorFlow数学演算はPythonオブジェクトとNumPy配列を組み合わせることができます
- tf.Tensorオブジェクトに変換されます。tf.Tensor.numpyメソッドは、オブジェクトの値をNumPy ndarray として返します。
2.3 Eagerモードでの勾配の計算
Eagerモードでは、tf.GradientTapeを使用して勾配を計算する操作を追跡します
実行ごとに異なる操作が発生する可能性があるため、すべての順方向パス操作はTapeに記録されます。勾配を計算するために、テープは再生され、特定のtf.GradientTapeは1回の勾配計算のみを破棄します。その後の呼び出しでは、エラー(RuntimeError)が発行されてランタイムが発生します。再現可能なリコールを設定することもできます
3. Eagerモジュールのデモコード
- tf.multiply() 2つの行列の対応する要素を乗算します
- tf.matmul()は、行列aに行列bを乗算してa * bを生成します
4変数と自動微分演算の例
5カスタムトレーニング
訓練していないとき
トレーニングの後:
注:テストデータは順不同である必要はありません
tf.keras.metrics要約計算モジュール
平均m = tf.keras.metrics.Mean( 'acc')を見つけることができます
enumerate()関数は、走査可能なデータオブジェクト(リスト、タプル、文字列など)をインデックスシーケンスに結合し、データとデータ添え字を同時にリストするために使用されます。通常、forループで使用されます。