学習の深さを持ち、なぜPyTorch、TensorFlowフレームワークは、必要がありますか?

オリジナルリンク: https://aiprocon.csdn.net/m/topic/ai_procon/ticket

640?wx_fmt = JPEG

著者|マーティン・ヘラー

翻訳|メニスカス

Zebian |火ミン

ソース| CSDN(ID:CSDNnews)

[REVIEW] あなたは深学習モデルを必要とし、その後PyTorch TensorFlowは良い選択ですか。

必ずしもすべての回帰または分類の問題は、学習の深さによって解決される必要があります。さえないすべての回帰または分類の問題は、機械学習を通じて解決する必要があると言うこと。結局のところ、多くのデータセットを解析的または単純な統計処理をモデル化することができます。

一方、いくつかのケースでは、学習や深移行研究の深さは、あなたが、より正確なモデルを訓練することができます。これらのケースでは、あなたが似ているモデルフレームワークモデルライブラリとモデルを訓練する必要がある場合は特に、PyTorchとTensorFlowを使用して検討することができます。

PyTorch

PyTorchはトーチとCaffe2枠組みの遺産の上に構築されました。名前として、トーチC / CUDAを使用して、スクリプト言語Pythonの使用PyTorch後端ように改良しました。また、生産関数に統合PyTorch Caffe2プロジェクト。

PyTorchは次のように記述されている「Pythonバージョンテンソルと動的ニューラルネットワークの強力なGPUアクセラレーション機能。」これはどういう意味ですか?

テンソル(テンソル)が広く使用されている物理学や工学のための数学的構造です。ベクトルの内積を取り、テンソルはベクトルは別の新しい長さと新しい方向性を有し得ることができるが、図2は、特注テンソル行列です。TensorFlow名前は、そのネットワークモデルにおける方法テンソルの流れから来ています。numpyのもndarray呼ばれる、テンソルを使用しました。

GPUアクセラレーションは、最も近代的な深さのネットワークフレームワークの神経の基礎です。動的ニューラルネットワークは、ニューラルネットワークの特別な種類は、各反復は、追加し、その正確さと汎用性を向上させるために、隠れ層を削除することによって、トレーニング中に、例えば、PyTorchモデルが変更されています。

各反復でPyTorchリアルタイム復興計算グラフ。これとは対照的に、TensorFlowは、デフォルトのチャートの計算、パフォーマンスを向上させるために最適化マップコード、およびトレーニングモデルを作成します。

熱心な実行モードがちょうどTensorFlowに登場しているが、それはPyTorch唯一の動作モードですが:呼び出されたときにAPIが直ちに実行されます、それは後で実行計算チャートに追加されることはありません。これは、計算効率が低くなりますが、PyTorch設計作業がそうですが、トレーニングや予測速度が実際に劣ってないように見えることがあります。

インテルMKL、NvidiaのcuDNN NCCLなどの加速PyTorchライブラリを、統合することで、速度を最大化します。そのコアCPU、GPUテンソルとニューラルネットワークのバックエンドTH(トーチ)、THC(トーチCUDA)、THNN(トーチニューラルネットワーク)とTHCUNN(トーチCUDAニューラルネットワーク)、C99のAPIで書かれた別のライブラリがあります。一方、PyTorch PythonバインディングのためのないモノリシックなC ++フレームワーク。目的は、Pythonの深さと統合することで、他のPythonライブラリを可能にします。

Fast.aiとfastaiライブラリー

近代的なベスト・プラクティスを通してfastaiライブラリベースPyTorchは、迅速かつ正確なニューラルネットワークのトレーニングを簡素化します。これは、視覚、テキスト、表、および「箱から出して」サポートなど、コラボレーション(協調フィルタリング)モデルの提供などのベストプラクティスのFast.ai深度調査の調査に基づいています。

fastaiライブラリはPyTorch KerasとTensorFlowとの間の関係に非常によく似ています。しかし、明らかな違いはPyTorchが正式fastaiをサポートしていない、ということです。

TensorFlow

TensorFlow多くの優れた機械学習と深い学習フレームワークは、最も成熟しているが、また、研究論文は、最大の1(そうでない場合も、Googleの従業員からの参照最初)を引用して、生産の効果の使用も非常に良いです。それは学ぶための最も簡単なフレームワークではないかもしれないが、TensorFlow 2の到着と、TensorFlowしきい値も2016は非常に高いです。TensorFlowは、多くのGoogleサービスの基本です。

次のようにTensorFlow 2.0の公式サイトでは、プロジェクトの説明:「エンドツーオープンソースの機械学習プラットフォームは、」Googleは「プラットフォーム」を通じて、包括的なエコシステムは、研究者が促進するため、このプラットフォーム」を使用することができ、ツール、ライブラリ、およびコミュニティリソースが含まれていマシンは最高レベル」に学び、そして開発者が簡単にAIベースのアプリケーションを構築、配備するために、このプラットフォームを使用することができます。

TensorFlow 2.0は、4つの主要コンポーネントがあります。

  • TensorFlowコア、モデルやオープンソースのライブラリを学ぶトレーニングマシンを開発します。

  • TensorFlow.js、WebブラウザとNode.jsの上のJavaScriptライブラリのモデルのトレーニングと展開。

  • TensorFlow Liteは、モバイルおよび組み込みデバイス上の展開モデルのための軽量ライブラリ。

  • 拡張TensorFlow、大規模な生産環境でのデータの準備、トレーニング、検証と展開モデルのためのプラットフォームをエンド・ツー・エンドです。

TensorFlow 2.0は、このバージョンでは、直感的な緊急の、高レベルAPIの実装などの新機能の範囲を持っており、任意のプラットフォームモデルを構築することができ、使用のシンプルさと使いやすさに重点を置いています。うまく実行するために熱心にTensorFlowは、カスタムコードを実行できることを意味し、TensorFlow元のモデルは、数字を計算するノードとエッジを追加し、以降のセッションで実行する必要があります。

TensorFlow 2.0を効率的に使用する方法があれば、非常に書き込まれる。コードの唯一のラインは、ニューラルネットワークの層Kerasで構築することができる必要があるコードの量を削減することができるAPを下げる古いの代わりに(高度tf.kerasのAPIを使用することです環状構造、符号量をさらに低減することができます。

TensorFlow.jsはJavaScript開発とトレーニングマシン学習モデルを使用することで、ブラウザまたはNode.js.でライブラリモデルを展開します TensorFlow.jsでは、ml5.jsにテンソルとオプティマイザの複雑さを隠し、高レベルのライブラリがあります。

TensorFlow.jsは、ブラウザを介して、モバイルとデスクトップデバイスをサポートすることができます。お使いのブラウザはWebGLのシェーダAPIをサポートしている場合、TensorFlow.jsは、GPUを活用するためにそれらを使用することができます。あなたのための100倍に加速アップを提供することができ、バックエンドのCPUと比較。、TensorFlow.jsは非常に迅速にGPUを搭載したコンピュータ上のブラウザで実行することができます。

TensorFlow Liteは、モバイルデバイス向けのオープンソースの深い学習フレームワークです。現在のところ、iOS、ARM64とラズベリーパイモデルを構築することができます。通訳およびコンバータ:TensorFlow Liteは、2つの主要コンポーネントがあります。インタプリタは、特別なハードウェアの多くの異なる種類に最適化されたモデルを介して実行することができます。コンバータは効率のためにインタープリタによって使用される形式にTensorFlowモデルとすることができる、最適化はまた、サイズを小さくすると、実行可能ファイルの性能を改善するために導入されてもよいです。

TensorFlow拡張(TFX)機械学習パイプラインエンドのプラットフォームの生産を展開するために使用されます。あなたは良いトレーニングモデルを持っていた後、私たちは、この分野での作業を検討する必要があります。データ検証、機能的なエンジニアリング、モデリング、モデル評価、推論やオンラインサービスの管理、およびモバイル展開ネイティブJavaScriptオブジェクトを含むパイプライン、。

ハード

Kerasは、ニューラルネットワークモデルを構築するためのシニアフロントエンドの仕様と実装です。TensorFlow、CNTKとTheano:Kerasは3つのバックエンド深い学習フレームワークをサポートしています。現在、AmazonはKeras MXNetバックエンドの開発に完全にコミットです。また、バックエンドKeras、OpenCLのサポートのPlaidMLの利点の使用など、すべてのGPUをPlaidML(別のプロジェクト)を使用することができます。

TensorFlowは、ハードウェアアクセラレーションによって達成デフォルトのバックエンドKerasあり、そして多くの場合、我々はまた、TensorFlowの使用をお勧めします、NvidiaのcuDNN上のCUDAとGPUを含め、及びテンソルの使用は、Googleクラウドとして処理ユニットを加速させました。Keras添加を個別にインストールすることができ、TensorFlowはさらに内部クラスを含むtf.keras。前述したように、これは、高度なフロントエンドTensorFlowのための選択です。

Kerasは、コンパイルやトレーニングモデルはまた、そのシーケンシャルモデルにおけるニューラルネットワークへの単なる関数呼び出した、符号量が1行にすることができる追加し、先進的な環境を提供します。必要であれば、Kerasはまた、関数式やモデルのAPIである下層コードに連絡することができます。

あなたのお気に入りの機能のAPIを見つけるまで、あなたはまた、Pythonのコードレベルまで、さらにKerasサブクラスkeras.Modelを使用することができます。また、それもScikit-学ぶAPI、あなたはKerasモデルでスーパーグリッド検索パラメータの最適化を実行するためにScikit学習の利点を取ることができるように。

ディープ学習と転移学習

PyTorchとTensorFlowサポート深学習と転移学習。(時には、カスタム機械学習と呼ばれる)学習の転送は自分のデータへの最終層のためにカスタマイズされ、事前に訓練されたニューラルネットワークモデルから開始することができます。

ゼロからのニューラルネットワークを学習深さは時間がかかり、タグデータの多くを必要とします。少ない時間の移動を過ごすために学ぶ、新しいタグが少ないサンプルを必要ですが、事前に訓練されたモデルが良いケースを持っているだけでは、マイグレーション・研究を使用することができます。幸いなことに、すべての主要な深い学習フレームワークを使用すると、モデルを選択するためのモデルライブラリのいくつかのフォームを提供しています。

(またConvNets又はCNNとしても知られる)を使用畳み込みニューラルネットワークの画像分類は、転写学習代表です。PyTorchとTensorFlowは、ニューラルネットワークを訓練するために畳み込み転移学習を使用する方法についてのチュートリアルを提供します。TensorFlow移行チュートリアルでは、機能を微調整するために抽出し、転移学習を使用する方法を示します。PyTorchマイグレーションチュートリアルでは、同じ2つの方法を示しています。

あなたは、畳み込みニューラルネットワークの移行の研究についての詳細をご希望の場合は、トピックに関する記事を読むことをお勧めします:

スタンフォードCS231ノート

https://cs231n.github.io/transfer-learning/

そして、関連文献を読んで。ここではこれらのノートに記載された重要な点は次のとおりです。

それは十分に大きなデータセットを持ってするのは難しいので、実際には、非常に少数の人々は、(ランダムな初期化を使用して)スクラッチコンボリューション全体のネットワークから訓練を受けました。対照的に、一般的な非常に大きなデータセットにおいて、事前訓練人(画像1000120万カテゴリを含むことを特徴とする請求例えばImageNet)ConvNetに、次いで、関心のある特徴を抽出することにより開始又はConvNet ConvNet。

深学習の枠組みを選択する方法

初期のPCとMacで、人々はしばしば私が買うべきか尋ね、登場。実際には、問題自体は間違いである、または私は「それはあなたが行うには、このコンピュータを使用したいのかに依存して」と言う必要があるので、この問題は、正しい答えはないが、通常、私は彼らにいくつかの質問をした後、彼らは自分を見つけることができるようになります例えば、「あなたは?行うには、このコンピュータを使用したい」または「あなたの基本的なアプリケーションは何ですか?」などの答え、

同様に、「I種類の深い学習フレームワークを使用する必要があります?」本当に本当の問題ではありません。この問題は、「?あなたは、あなたのモデルが何をしたいか」など、考えるすべての最初の、あなたに依存し、そして、あなたはトレーニングのために使用するデータ型を深く見ることができます。

あなたはなじみの深い学習していない場合、私はあなたがfastaiチュートリアルでKerasチュートリアルTensorFlow 2、及びPyTorchを読むことをお勧めします。でも、低レベルのAPI TensorFlowとPyTorchの深い理解せずに、あなたも学ぶことがたくさんある、あなたはこれらの2つの方法を理解する必要があります。次に、これら2つのフレームワークが実際にどのように類似点を意識するかもしれないが、彼らは生存の概念や技術に依存していると同じです。

多くの場合、フレームワークのどのような選択肢が問題ではありません:あなたは、各フレームは基本的に利用でき、同じモデルであることがわかります。特定の状況下では、それは別のオーバーフレームであってもよい - 少なくとも現在のバージョンではそうです。また、フレームワークの基本的な機能のいくつかは、品質のチュートリアルがあるかもしれない可能性があるため、それが簡単に、どちらを学ぶために見つけることがあります。

オリジナル:

https://www.infoworld.com/article/3433857/deep-learning-frameworks-pytorch-vs-tensorflow.html

(*これはAI技術の復刻品の本部で、作者に連絡してください再現

福祉瞬間

総会からのチャネルに参加して1日に閉じ、または元のテキストを読むためにここに次のFanger魏コードをクリックしてスキャンされ、すぐに参加!(特別オファー598元の学生チケット、チケットを購入し、マイナス一人あたりの割引、カウントダウン1日!)

640?wx_fmt = JPEG

推奨読書


640?wx_fmt = PNG

それぞれ「見た目」のあなたのポイント、私は真剣に好きなように

おすすめ

転載: blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/100549945