この記事では、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 で実装しました。
2020年5月、GPT-3はGPT-2の1年後に正式にリリースされました。GPT-2も、オリジナル...
クロード 3 のアリーナ ランクがついに登場:わずか 3 日間で 20,000 票が集まり、リストの...
世界初の試験管ベビーは1978年に英国で誕生した。それ以来、人工生殖技術は継続的に改良されてきました...
教育は知識を伝える社会的活動として、国の人材育成システムや経済発展に影響を与え、国家の繁栄を促進しま...
今日のデジタル世界では、人工知能とクラウド コンピューティングが毎日多くの人々の仕事と生活に影響を与...
翻訳者 |ブガッティレビュー | Chonglou OpenAIのGPT-4やAnthropicのC...
ガーディアン紙、BBC、スカイニュースチャンネルなど複数の外部情報源によると、英国の物理学者スティー...
[[206421]]国慶節の連休中の数日間、河南省では新たなテクノロジードラマが繰り広げられた。コン...
何か大きなことが起こりました!数か月前、マイクロソフトの AI 研究チームは、大量のオープンソースの...