TensorFlow 2.x は、モデルの構築と全体的な使用において多くの利便性を提供します。それで、tf の新機能は何ですか?
この記事では、TensorFlow API の一部である関数/クラスにより、TensorFlow の使用がスムーズになり、コード行数が削減され、効率が向上する TF 2.0 の 10 の機能について説明します。 1. 入力パイプラインを構築するためのtf.data APItf.data API は、データ パイプラインと関連操作の機能を提供します。 パイプラインの構築、前処理関数のマッピング、データセットのシャッフルやバッチ処理などを行うことができます。 テンソルを使用したパイプラインの構築
データセットのシャッフルとバッチ処理
2つのデータセットを圧縮する
外部関数のマッピング
2. 画像データジェネレータこれは、tensorflow.keras API の最も優れた機能の 1 つです (私の意見では)。画像データジェネレーターは、バッチ処理と前処理中にデータセットのスライスを生成し、リアルタイムでデータ拡張を実行できます。 ジェネレーターを使用すると、ディレクトリまたはデータフレームから直接データをストリーミングできます。 画像データジェネレーターにおけるデータ拡張に関する誤解は、既存のデータセットにさらにデータを追加するというものです。これはデータ拡張の実際の定義ですが、画像データジェネレーターでは、データセット内の画像はトレーニング プロセス中のさまざまなステップでオンザフライで変換されるため、モデルはこれまで見たことのないノイズの多いデータでトレーニングできます。
ここでは、すべてのサンプルが(正規化のために)再スケーリングされ、他のパラメータは拡張のために使用されます。
リアルタイム データ ストリームのディレクトリを指定します。これは、データフレームを使用して行うこともできます。
x_col パラメータは画像への完全なパスを定義し、y_col パラメータは分類のラベル列を定義します。 このモデルは発電機で直接電力を供給することができます。 steps_per_epoch パラメータを指定する必要がありますが、実際にはサンプル数/バッチ サイズになります。
3. tf.image を使用したデータ拡張データの拡張が必要です。データが不十分な場合は、データを変更して個別のデータ ポイントとして扱うことが、より少ないデータでトレーニングを行う非常に効果的な方法です。 tf.image API には画像を変換するためのツールがあり、これは後で前述の tf.data API を介してデータ拡張に使用できます。
上記のコードの出力は次のようになります。
上記のコードの出力は次のようになります。
上記のコードの出力は次のようになります。
上記のコードの出力は次のようになります。 4.TensorFlowデータセット
これは、Tensorflow によって収集されたさまざまなドメインからの非常によく知られたデータセットをダンプするための唯一の出発点であるため、非常に便利なライブラリです。
Tensorflow データセットは次のリンクにあります。 https://www.tensorflow.org/datasets/catalog/overview
5. 事前学習済みモデルに基づく転移学習転移学習は機械学習における新たなホットなトピックです。ベースライン モデルがすでに他の誰かによってトレーニングされている場合、そのモデルはもはや適用可能でも実用的でもありません。転移学習は、事前トレーニング済みのモデルを特定のユースケースに再利用したり、異なるユースケースに拡張したりすることでこの問題を解決します。 TensorFlow は、目的のユースケースに簡単に拡張できるベースラインの事前トレーニング済みモデルを提供します。
この base_model は、追加のレイヤーや異なるモデルを使用して簡単に拡張できます。次に例を示します。
6. 見積もり
推定器は TensorFlow の完全なモデルの高レベル表現であり、簡単にスケーリングして非同期的にトレーニングできるように設計されています - TensorFlow ドキュメント 事前に作成された推定器は非常に高レベルのモデル抽象化を提供するため、低レベルの複雑さを気にすることなく、モデルのトレーニングに直接集中できます。 例えば:
これは、tf.estimator を使用して推定器を構築およびトレーニングするのが非常に簡単であり、推定器をカスタマイズすることもできることを示しています。 TensorFlow には、LinearRegressor、BoostedTreesClassifier など、事前に作成された推定器が多数あります。詳細については、Tensorflow のドキュメントをご覧ください。 7. カスタムレイヤーニューラル ネットワークは、さまざまな種類の層を持つ多層のネットワークとしてよく知られています。 TensorFlow には、多くの定義済みレイヤー (Dense、LSTM など) が含まれています。 しかし、より複雑なアーキテクチャの場合、レイヤーのロジックはメイン レイヤーよりもはるかに複雑になります。 このような場合、TensorFlow ではカスタム レイヤーを構築できます。 これは、tf.keras.layers.Layer クラスをサブクラス化することで実行できます。
ドキュメントに記載されているように、独自のレイヤーを実装する最良の方法は、tf.keras.Layer クラスを拡張して以下を実装することです。
カーネルの初期化は __init__ 自体で実行できますが、ビルドで実行した方がよいでしょう。そうしないと、新しいレイヤーを作成するたびに input_shape を明示的に指定する必要があります。 8. カスタマイズされたトレーニングtf.keras シーケンスおよびモデル API を使用すると、モデルのトレーニングが容易になります。 ただし、複雑なモデルをトレーニングする場合は、ほとんどの場合、カスタム損失関数が使用されます。 さらに、モデルのトレーニングはデフォルトのトレーニングとは異なる場合があります (たとえば、異なるモデル コンポーネントに個別に勾配を適用するなど)。 TensorFlow の自動微分化は、勾配を効率的に計算するのに役立ち、これらのプリミティブはカスタム トレーニング ループを定義するために使用されます。
このサイクルは、ユースケースに応じてよりカスタマイズされた設定で、複数の期間にわたって繰り返すことができます。 9. チェックポイントTensorFlow モデルの保存には 2 つの方法があります。
チェックポイントは、モデルで使用されるすべてのパラメータの正確な値をキャプチャします。 Sequential API または Model API を使用して構築されたモデルは、SavedModel 形式で簡単に保存できます。 ただし、カスタム モデルの場合はチェックポイントが必要です。 チェックポイントには、モデルによって定義された計算の説明は含まれていないため、通常は、保存されたパラメータ値を使用するソース コードが利用可能な場合にのみ役立ちます。 チェックポイントを保存
チェックポイントからロード TensorFlow は、ロードされたオブジェクトから開始して、名前付きエッジを持つ有向グラフをトラバースすることにより、変数をチェックポイント値に一致させます。 ドキュメントを介したモデル回復のための依存関係グラフ
10. ケラスチューナーこれは TensorFlow のかなり新しい機能です。
ハイパーパラメータチューニング (ハイパーチューニング) は、ML モデルの構成を定義するパラメータを選択するプロセスです。これらの要素は、特徴エンジニアリングと前処理後のモデルのパフォーマンスを決定づけるものです。
ハイパーランドに加えて、ベイジアン最適化とランダムサーチもチューニングに使用できます。
さらに、最適なハイパーパラメータを使用してモデルをトレーニングします。
11. 分散トレーニング複数の GPU があり、トレーニング ループを複数の GPU に分散してトレーニングを最適化したい場合は、TensorFlow のさまざまな分散トレーニング戦略によって GPU の使用を最適化し、GPU でのトレーニングを処理できます。 MirroredStrategy は最も一般的に使用される戦略です。どのように機能しますか?
要約するTensorFlow は、機械学習のすべてのコンポーネントを構築するのに十分な強力さを備えています。 このチュートリアルの主な内容は、TensorFlow が提供するさまざまな API の紹介と、それらの使用方法に関するクイック ガイドです。 Git コード アドレス: https://github.com/rojagtap/tensorflow_tutorials |
>>: インテリジェントな音声対話サービスはますます良くなり、従順であることも芸術である
「フェイクニュース」という言葉が今話題になっているが、ディープフェイク(本物に見えるが実は偽の動画を...
ザッカーバーグ氏は新たな目標「すべてをオープンソースの AGI に」を発表しました。そう、ザッカーバ...
現在、ニューラル表現は、レンダリング、イメージング、幾何学モデリング、シミュレーション アプリケーシ...
教育部が2019年3月に発表した新規登録学部専攻を例にとると、最も人気のある専攻は人工知能です。上海...
[51CTO.com クイック翻訳] 多くの人工知能コンピュータシステムの中核技術は、人間の脳の生...
プログラミング アルゴリズムに関して、多くの読者が学校で最初に学ぶのはバブル ソートかもしれませんが...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[201203]] 1. Keras を使用する理由ディープラーニングが大人気の昨今、サードパーテ...
[[409353]] IEEE が再び栄誉を授与する時が来ました。 7月2日、米国電気電子学会(IE...
エッジコンピューティングの進歩とますます高性能化するチップにより、人工知能(AI)は広域ネットワーク...
[51CTO.com からのオリジナル記事] 少し前に、LinkedIn と IBM が多数の専門...