導入
TensorFlow 2.x は、モデルの構築と TensorFlow の全体的な使用を大幅に簡素化します。 TF2 の新機能は何でしょうか?
この記事では、TensorFlow での作業をスムーズにし、コード行数を減らし、効率を高める TF 2.0 の 10 の機能について説明します。 1(a). tf.dataは入力パイプラインを構築するtf.data は、データ パイプラインと関連操作のための関数を提供します。パイプラインの構築、前処理関数のマッピング、データセットのシャッフルやバッチ処理などを行うことができます。 テンソルからパイプラインを構築する
バッチの構築とシャッフル
2つのデータセットを1つに圧縮する
外部関数のマッピング
1(b). イメージデータジェネレータこれは、tensorflow.keras API の最も優れた機能の 1 つです。 ImageDataGenerator は、バッチ処理、前処理、およびデータ拡張を行いながら、データセットのスライスをリアルタイムで生成できます。 ジェネレーターを使用すると、ディレクトリまたはデータ ディレクトリから直接データ ストリームを生成できます。
ここでは、すべてのサンプルが(正規化のために)再スケーリングされ、他のパラメータは拡張のために使用されます。
リアルタイム データ ストリームのディレクトリを指定します。これはデータフレームを使用して実行することもできます。
x_colパラメータは画像への完全なパスを定義し、 y_colパラメータは分類のラベル列を定義します。 ジェネレータを使用してモデルに直接データを供給できます。 steps_per_epochパラメータ ( number_of_samples // batch_size) を指定する必要があります。
2. データの強化にはtf.imageを使用するデータの拡張が必要です。データが不足している場合、データを変更して個別のデータ ポイントとして扱うことは、より少ないデータでトレーニングを行う非常に効果的な方法です。 tf.image API には画像を変換するためのツールがあり、これを tf.data を使用したデータ拡張に使用できます。
上記コードの出力
上記コードの出力
上記コードの出力
上記コードの出力 3. TensorFlowデータセット
これは、TensorFlow によってさまざまな分野から収集された非常に有名なデータセットが含まれているため、非常に便利なライブラリです。
tensorflow-datasets で利用可能なデータセットの詳細なリストについては、https://www.tensorflow.org/datasets/catalog/overview を参照してください。
4. 転移学習に事前学習済みモデルを使用する転移学習は機械学習における新しい、非常に重要な技術です。ベースライン モデルがすでに他の誰かによってトレーニングされており、そのトレーニングに大量のリソース (たとえば、1 人の人間では購入できない可能性のある複数の高価な GPU) が必要な場合。転移学習はこの問題を解決します。事前トレーニング済みのモデルは、特定のシナリオで再利用したり、さまざまなシナリオに拡張したりできます。 TensorFlow は、必要なシナリオに合わせて簡単に拡張できるベースラインの事前トレーニング済みモデルを提供します。
このbase_model は、追加のレイヤーや異なるモデルを使用して簡単に拡張できます。のように:
5. 推定値
事前に作成された推定器は非常に高レベルのモデル抽象化を提供するため、基礎となる複雑さを気にすることなく、モデルのトレーニングに直接集中できます。例えば:
これは、tf.estimator.Estimators を使用して推定器を構築およびトレーニングすることがいかに簡単であるかを示しています。見積もりもカスタマイズ可能です。 TensorFlow には、LinearRegressor、BoostedTreesClassifier など、多くの推定器があります。 6. カスタムレイヤーニューラル ネットワークは、層がさまざまなタイプになることができる多層の深いネットワークとして知られています。 TensorFlow には、多くの定義済みレイヤー (密度、LSTM など) が含まれています。しかし、より複雑なアーキテクチャの場合、レイヤーのロジックは基本レイヤーよりもはるかに複雑になります。このような場合、TensorFlow ではカスタム レイヤーを構築できます。これは、tf.keras.layers をサブクラス化することで実現できます。
ドキュメントに記載されているように、独自のレイヤーを実装する最良の方法は、tf.keras.Layer クラスを拡張して以下を実装することです。
カーネルの初期化は *_ init _ で実行できますが、ビルドで実行した方がよいでしょう。そうしないと、新しいレイヤーを作成するたびに input_shape * を明示的に指定する必要があります。 7. カスタマイズされたトレーニングtf.keras Sequential および Model API により、モデルのトレーニングが容易になります。ただし、複雑なモデルをトレーニングする場合は、ほとんどの場合、カスタム損失関数が使用されます。さらに、モデルのトレーニングもデフォルトのトレーニングとは異なる場合があります (たとえば、異なるモデル コンポーネントの勾配を個別に評価するなど)。 TensorFlow の自動微分化は、勾配を効率的に計算するのに役立ちます。これらのプリミティブは、カスタム トレーニング ループを定義するために使用されます。
このサイクルは、ユースケースに応じて、複数のエポックで、よりカスタマイズされた設定で繰り返すことができます。 8. チェックポイントTensorFlow モデルを保存するには 2 つの方法があります。
チェックポイントは、モデルで使用されるすべてのパラメータの値をキャプチャします。 Sequential API または Model API を使用して構築されたモデルは、SavedModel 形式で簡単に保存できます。 ただし、カスタム モデルの場合はチェックポイントが必要です。
チェックポイントを保存
チェックポイントからモデルをロードするTensorFlow は、読み込まれたオブジェクトから開始し、名前付きエッジを持つ有向グラフをトラバースして、変数をチェックポイント値に一致させます。
9. ケラスチューナーこれは TensorFlow のかなり新しい機能です。
ハイパーパラメータのチューニング チューニングは、定義された ML モデル構成のパラメータをスクリーニングするプロセスです。特徴エンジニアリングと前処理の後、これらの要素がモデルのパフォーマンスを決定します。
HyperBand に加えて、BayesianOptimization と RandomSearch もチューニングに使用できます。
次に、最適なハイパーパラメータを使用してモデルをトレーニングします。
10. 分散トレーニング複数の GPU があり、トレーニング ループを複数の GPU に分散してトレーニングを最適化したい場合は、TensorFlow のさまざまな分散トレーニング戦略によって GPU の使用を最適化し、GPU でのトレーニングを処理できます。 tf.distribute.MirroredStrategy は最もよく使用される戦略です。どのように機能しますか?
|
<<: パラメータ調整器、ここを見てください!ディープラーニングのトレーニング効率を向上させる2つのコツ
>>: 2021 年のデジタル トランスフォーメーションの 10 大トレンド
AI の取り組みが失敗すると、その責任はスキルのギャップにあるとされることが多いです。しかし、それだ...
社会が急速に変化する時代において、ブランドセーフティ戦略は分裂を招き、保護対象であるブランド評判その...
12月6日ハワイ時間、クアルコムは第2回Snapdragonテクノロジーサミットで、新型Snapdr...
[[392763]]コンセプト簡単に言うと、再帰とは、毎回異なる変数を渡しながら、自身を呼び出すメ...
最近、IBM は主要な GPU よりも 14 倍効率の高い新しい 14nm アナログ AI チップを...
[[424946]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitA...
「働いてお金を稼ぐのは大変すぎるから、屋台を出して自分で経営者になったほうがいいよ!」露店経済の突然...
近年、ドローン業界は非常に急速な発展を遂げていると言えます。製品面では数量が大幅に増加し、種類もます...
SAP は、生成 AI 向けの多数の新機能を発表しており、まもなく SAP Datasphere プ...
SAS の新しいレポート「AIoT – IoT リーダーが困難を脱する方法」によると、組織のモノのイ...
130 億のパラメータを持つモデルが実際にトップの GPT-4 に勝つのでしょうか?下の図に示すよ...
日本生命保険株式会社(以下、日本生命)は、日本最大級の保険会社の一つであり、世界60カ国以上で事業を...
[51CTO.com クイック翻訳]近年、人工知能技術の発展と進歩に伴い、コンピュータービジョンとデ...