この記事では、TensorFlow 2.0 の 10 の機能について説明します。
1(a). 入力パイプラインを構築するためのtf.data API テンソルからパイプラインを構築します。
バッチとシャッフル:
2 つのデータセットを圧縮します。
外部関数のマッピング:
1(b). イメージデータジェネレータ これは、tensorflow.keras API の最も優れた機能の 1 つです。 ImageDataGenerator は、バッチ処理と前処理中にデータセットのスライスとデータ拡張をリアルタイムで生成できます。 ジェネレーターを使用すると、ディレクトリまたはデータフレームから直接データ ストリームにアクセスできます。 ImageDataGenerator でのデータ拡張に関する誤解の 1 つは、既存のデータセットにさらにデータが追加されるというものです。これはデータ拡張の実際の定義ですが、ImageDataGenerator では、データセット内の画像はトレーニング中のさまざまなステップで動的に変換されるため、モデルはこれまで見たことのないノイズの多いデータでトレーニングできます。
ここでは、すべてのサンプルが(正規化のために)再スケーリングされ、他のパラメータは拡張のために使用されます。
リアルタイム データ ストリームのディレクトリを指定します。これはデータフレームを使用して実行することもできます。
x_col パラメータは画像への完全なパスを定義し、y_col パラメータは分類に使用するラベル列を定義します。 steps_per_epoch パラメータを指定する必要がありますが、実際には number_of_samples // batch_size です。
2. tf.image を使用したデータ拡張 データが不十分な場合は、データを変更して個別のデータ ポイントとして使用することが、より少ないデータでトレーニングを行う非常に効果的な方法です。 tf.image API には画像を変換するためのツールがあります。次の Python の例を参照してください。
3. TensorFlowデータセット
これは、Tensorflow によって収集されたよく知られたデータセットが含まれているため、非常に便利なライブラリです。
tensorflow-datasets で利用可能なデータセットの詳細なリストは、ドキュメントのデータセット ページにあります。 オーディオ、画像、画像分類、オブジェクト検出、構造化、要約、テキスト、翻訳、ビデオはすべて tfds によって提供されるタイプです。 4. 転移学習に事前学習済みモデルを使用する 転移学習は機械学習の分野における新しいトレンドであり、TensorFlow は、目的のユースケースに合わせて簡単に拡張できる、ベンチマーク済みの事前トレーニング済みモデルを提供します。
この base_model は、追加のレイヤーや異なるモデルを使用して簡単に拡張できます。のように:
tf.keras.applications の下にある他のモデルまたはモジュールの詳細なリストについては、ドキュメント ページを参照してください。 5. 推定値 推定器は TensorFlow の完全なモデルの高レベル表現であり、簡単にスケーリングして非同期的にトレーニングできるように設計されています。 組み込みの推定器は非常に高レベルのモデル抽象化を提供するため、モデルの複雑さを気にすることなく、モデルのトレーニングに直接集中できます。例えば:
TensorFlow には、LinearRegressor、BoostedTreesClassifier など、多くの組み込み推定器があります。見積もりもカスタマイズできます。 6. カスタムレイヤー ニューラル ネットワークは多層ネットワークとして知られており、層はさまざまなタイプにすることができます。 TensorFlow には、多くの定義済みレイヤー (Dense、LSTM など) が含まれています。しかし、より複雑なアーキテクチャの場合、レイヤーのロジックはさらに複雑になる可能性があります。 TensorFlow では、tf.keras.layers.Layer クラスをサブクラス化することでカスタム レイヤーを構築できます。
カスタム レイヤーを実装する最良の方法は、tf.keras.Layer クラスを拡張することです。
カーネルの初期化は __init__ で実行できますが、ビルドで実行した方がよいでしょう。そうしないと、新しいレイヤーを作成するたびに input_shape を明示的に指定する必要があります。 7. カスタマイズされたトレーニング tf.keras シーケンスおよびモデル API を使用すると、モデルのトレーニングが容易になります。ただし、複雑なモデルをトレーニングする場合は、ほとんどの場合、カスタム損失関数が使用されます。さらに、モデルのトレーニングもデフォルトと異なる場合があります (たとえば、異なるモデル コンポーネントに個別に勾配を適用するなど)。 TensorFlow の自動微分化は、勾配を効率的に計算するのに役立ちます。 Python の例は次のとおりです。
このサイクルは複数のエポックで繰り返すことができ、ユースケースに応じて他のカスタマイズされた設定を使用することもできます。 8. チェックポイント TensorFlow モデルの保存には 2 つの方法があります。
チェックポイントは、機械学習モデルで使用されるすべてのパラメータの正確な値をキャプチャします。 Sequential API または Model API を使用して構築された機械学習モデルは、SavedModel 形式で簡単に保存できます。 ただし、カスタム モデルの場合はチェックポイントが必要です。 チェックポイントには、モデルによって定義された計算の説明は含まれていないため、通常はソース コードが利用可能な場合にのみ役立ちます。 チェックポイントを保存します:
チェックポイントをロードします: TensorFlow は、ロードされたオブジェクトから開始して、名前付きエッジを持つ有向グラフをトラバースすることにより、変数をチェックポイント値に一致させます。
9. ケラスチューナー これは TensorFlow のかなり新しい機能です。
ハイパーパラメータ チューニングは、機械学習モデルの構成を定義するパラメータを選択するプロセスです。これらは、特徴エンジニアリングと機械学習モデルのパフォーマンスを決定する要因です。
HyperBand に加えて、BayesianOptimization と RandomSearch もチューニングに使用できます。
次に、最適なハイパーパラメータを使用してモデルをトレーニングします。
10. 分散トレーニング 複数の GPU があり、複数の GPU にトレーニングを分散してトレーニングを最適化したい場合は、TensorFlow のさまざまな分散トレーニング戦略によって GPU の使用を最適化し、GPU 上でトレーニングを行うことができます。 tf.distribute.MirroredStrategy は最もよく使用される戦略です。どのように機能しますか?
やっと TensorFlow は、機械学習パイプラインのほぼすべてのコンポーネントを構築できるほど強力です。このチュートリアルの主な内容は、TensorFlow が提供するさまざまな API の紹介と、これらの API の使用方法に関するクイック ガイドです。 |
<<: Verdict、2020年第1四半期のTwitterにおけるIoTトレンドトップ5を発表
>>: GitHub のスター数は 10 万近くに達しています。インド人男性がすべての AI アルゴリズムを Python と Java で実装しました。
クラウド セキュリティのスタートアップ企業 Wiz の研究者は、SAS トークンの設定ミスが原因で、...
オープンで、非常にダイナミックで進化する環境で学習する能力は、生物学的知能の中核となる要素の 1 つ...
テレンス・タオ氏が研究してきた周期的モザイク化問題に新たな進歩がありました。 9月18日、Teren...
今日、ほぼすべての AI 作業は機械学習の成功に基づいています。機械学習には分析を検討するための十分...
9月22日、IDCコンサルティングの公式WeChatアカウントによると、2023年下半期以降、ますま...
これは、鞭で打たれるとどんどん速く回転するコマのような「高離職率」社会です。技術推論において非常に重...
[[214992]]まず、コードテンソルフローをインポートする tensorflow.example...
推奨アルゴリズムは、機械学習とデータマイニングの分野の重要な部分であり、ユーザーにパーソナライズされ...
[[117973]] 1. ページランクPageRank は、世界で最も人気のある検索エンジンである...
Google の中国ウェブマスター ブログにログインすると、4 月 22 日の午後に更新された「品質...
1. AIOpsとインテリジェントログセンター1.1 AIOps の 5 つのレベルインテリジェント...