ご存知のとおり、機械学習フレームワークの分野では、PyTorch と TensorFlow がそれぞれ学術界と産業界で最も広く使用されている 2 つのプレーヤーとなっており、Keras や MXNet などのフレームワークも、その独自性から開発者に愛されています。この記事は主に初心者向けのアドバイスを提供するものです。「最良」または「最悪」のフレームワークはありません。最終的には、技術的な背景、ニーズ、期待に応じて選択することになります。 TensorFlow: 裕福な家庭に生まれた業界のリーダー TensorFlow は 2015 年 11 月に開始され、Apache License 2.0 プロトコルに基づいてリリースされ、Google Brain チームによって開発されました。今のところ、GitHub 上で最も人気があり、最も広く使用されているディープラーニング フレームワークであり、業界の多くの採用要件にも記載されています。 TensorFlow 2.0 は 2019 年 3 月にリリースされ、バージョン 1.0 と比較して大幅な変更が加えられています。 TensorFlow が現在の地位にある主な理由は 2 つあります。1 つは「大きな木に寄りかかって日陰を作るのは良いことだ」ということ、そして Google が TensorFlow を使用してほぼすべてのアプリケーションで機械学習を実装していることです。 Google のディープラーニング分野における影響力と強力なプロモーション能力のおかげで、TensorFlow は発売以来大きな注目を集めています。また、その壮大な設計により、ディープラーニングを強力にサポートできるだけでなく、柔軟な数値計算コアは、多数の数学演算を伴う他の科学分野でも広く使用できます。 優位性の帰属: Python、JavaScript、C++、Java、Go、C#、Julia などの複数のプログラミング言語をサポートします。 柔軟なアーキテクチャは、マルチ GPU と分散トレーニングをサポートし、強力なクロスプラットフォーム操作機能を備えています。 TensorBoard コンポーネントが付属しており、計算グラフを視覚化できるため、ユーザーはトレーニング プロセスをリアルタイムで監視および観察できます。 公式ドキュメントは非常に詳細で、検索できる情報も豊富です。 コミュニティは巨大で、多数の開発者がここで活動しています。 落とし穴に関する警告: フレームワーク自体の言語設計から判断すると、始めるのはかなり難しいです。さらに、抽象的な概念の一部は自分で作成したものであり、学習のハードルが高くなります。 システム設計は 100 万行を超えるコードがあり、非常に複雑です。学習者が TF の基本的な動作メカニズムを理解したい場合、間違いなく時間がかかり、困難になります。 ドキュメントやチュートリアルは多数ありますが、整理されておらず、新バージョンと旧バージョンが分離されているため、初心者がステップバイステップの入門書を見つけるのは困難です。 インターフェースは頻繁に反復され、バージョン間の非互換性の問題は頭を悩ませるほどです。特に TF2 のリリース後、多くの TF1 ユーザーは、多くのオープンソース コードが新しいバージョンでは実行できないことに気づきました。 TensorFlow はモバイルや組み込み分野では肥大化しすぎていて、その計算速度は満足できるものではありません (Google はこの問題に対処するために TensorFlow Lite を開発しました)。 要約:今日までの TensorFlow の開発は、ある意味「壮大さから始まり、壮大さによって制限される」という意味を持っています。苦情は多いですが、それは間接的にユーザーが多いことも示しています。さらに、業界では、TensorFlow は依然としてディープラーニング フレームワークのベンチマークとして文句なしの地位を占めています。Google のサポートと相まって、TensorFlow の学習に時間を投資することは非常に良い選択です。 プロジェクトアドレス: https://github.com/tensorflow/tensorflow Keras: ユーザーフレンドリーなミニマリスト すでに Python を知っていて、ディープラーニングを始める準備ができている場合は、Keras が最も簡単に始められるツールかもしれません。厳密に言えば、Keras はディープラーニング フレームワークというよりも、Python で書かれたオープンソースのニューラル ネットワーク ライブラリ、サードパーティのフレームワーク上に構築されたディープラーニング インターフェイス、および高レベル API です。 Keras は迅速な実験をサポートするために作られました。TensorFlow に代表されるさまざまなディープラーニングフレームワークに基づいてモデルを素早く構築し、アイデアを実験結果として素早く出力することができます。その設計は「ユーザーフレンドリー」という特徴を十分反映しています。 簡潔で一貫性のある API を提供し、車輪の再発明に対するユーザーの懸念を可能な限り軽減するために、Keras はレイヤーごとにカプセル化を行っています。一方で、この高度なカプセル化により、ユーザーは簡単に学習できますが、その一方で柔軟性に欠け、多くの場合、ユーザーが基礎となるデータ情報を取得するのが難しくなり、既存のニューラル ネットワーク レイヤーを書き換えるのが非常に複雑になります。さらに、パッケージ内に多くのバグが隠されているため、Keras の実行速度も比較的遅くなります。 優位性の帰属: ユーザーフレンドリーで読みやすいコード、明確な構文、高度なモジュール化、簡単に始められること。 一般的なアプリケーションにおけるユーザーの作業負荷を軽減するための簡潔な API を提供します。 畳み込みニューラル ネットワークと再帰型ニューラル ネットワーク、またはその 2 つの組み合わせの実装をサポートします。 同じコードを CPU または GPU 上でシームレスに実行できます。 公式ドキュメントは詳細かつわかりやすく、ユーザー コミュニティも巨大です。 落とし穴に関する警告: 高度に統合されており、柔軟性に欠け、詳細な学習中にボトルネックが発生しやすい。 過度なカプセル化は、デバッグの難易度をある程度まで高めます。 DL初心者にとっては、Kerasの使いやすさから、基礎となる原理を無視してしまうことになりがちです。 概要: 数あるディープラーニング フレームワークの中でも、Keras は「ミニマリズム」を極限まで追求したフレームワークと言えます。簡潔なコード、簡潔な API、簡潔なモデルの構築とエクスポートにより、ディープラーニングはそれほど「手の届かない」ものではなくなりました。ただし、初心者にとって、Keras が推奨に適しているかどうかは意見が分かれるところです。支持者は、Keras はユーザー操作を最小限に抑え、モデルを非常に理解しやすくするため、初心者にとって間違いなく良い足がかりになると考えています。反対者は、Keras を使用する場合、ほとんどの場合、ユーザーは主にインターフェースを呼び出しており、ディープラーニングの意味を真に理解するのは難しいと考えています。過度にカプセル化されているため、初心者は正しいように見えても実際はそうではない状況に陥りやすくなります。 公式サイト: https://keras.io/ MXNet: 控えめで軽量なプレーヤー MXNet は、2016 年に AWS によってクラウド コンピューティングの公式ディープラーニング プラットフォームとして正式に選択された軽量のディープラーニング ライブラリです。 2017 年 1 月、MXNet プロジェクトは Apache Foundation に参加し、Apache インキュベーター プロジェクトになりました。 MXNet は、強力な分散サポートと、メモリおよびビデオメモリの大幅な最適化が高く評価されています。同じモデルの場合、MXNet はメモリとビデオメモリの占有量が少ない傾向があるため、リソースが不足している友人には良い選択です。 軽量フレームワークである MXNet には、C++、Python、R、Scala、Julia、Matlab、JavaScript など、非常に豊富な言語インターフェースがあり、マルチターミナル操作をサポートし、複数の CPU、複数の GPU、クラスター、サーバー、デスクトップ、モバイル デバイスで実行でき、シンボリック プログラミングと命令型プログラミングを組み合わせて、ディープラーニング フレームワークの柔軟性と実行効率を最大化できるなど、非常に特徴的な機能があります。 優位性の帰属: 多言語インターフェースをサポートします。 柔軟性と効率性を兼ね備えた、適合型プログラミングと命令型プログラミングの両方をサポートします。 分散環境における優れたスケーラビリティを備え、複数の GPU や複数のマシンに効果的に拡張できます。 AWS プラットフォームのサポートにより、クラウドの導入が便利になります。 落とし穴に関する警告: 当初のプロモーションは強力ではなく、控えめすぎたため、全体的なエコシステムの構築が比較的遅れ、ユーザーコミュニティの活動も低調でした。 教育用ドキュメントは十分に体系化されておらず、MXNet インターフェースの使用方法を本当に理解するにはソース コードを表示するしかないため、学習コストが高くなります。 概要: MXNet はリリース以来、比較的目立たず、ニッチな存在でした。創業者の李牧氏はかつて、MXNet の開発初期段階では「プロモーションを優先して技術が犠牲になった」と述べています。パフォーマンスは素晴らしいが、結局は輝く瞬間がなかった。さらに、公式ドキュメントの「粗雑さ」も、始めるのが難しいため、特にゼロから始める初心者にとっては、かなりの数のユーザーの意欲を削いでいます。 公式サイト: https://mxnet.incubator.apache.org/ PyTorch: 動的グラフで登場した学術界の寵児 PyTorch は、Torch をベースにした Python 用のオープンソースのディープラーニング ライブラリであり、Facebook によって強力にサポートされています。 2017 年 1 月にリリースされ、近年最も人気のあるディープラーニング フレームワークの 1 つです。 2018 年に Caffe2 が正式に PyTorch に統合されて以来、PyTorch の開発の勢いは止められないものになりました。使いやすさ、強力な機能、研究のアイデアを迅速に検証できることから、研究者に広く好まれています。 TensorFlow の「壮大な青写真」を前にして、PyTorch が急速に成長できた主な理由は、動的な計算グラフをサポートし、優れた柔軟性を備えていること、使いやすく、ほぼ間違いのない操作が非常にユーザーフレンドリーであること、非常に詳細でわかりやすい公式チュートリアルが用意されており、多数の開発者や研究者を魅了し、コミュニティが急速に成長していることです。現在、新しく発表された論文の多くは、論文実装のツールとして PyTorch を使用しています。科学研究者であれば、PyTorch が第一の選択肢となるかもしれません。 利点は次のとおりです: 簡潔。 PyTorch はより直感的な設計で、可能な限りカプセル化を少なくし、透明なモデリング プロセスとわかりやすいコードを採用しています。 使いやすいです。アプリケーションは非常に柔軟性が高く、インターフェースは Torch に準拠しているため、ユーザーの考え方に適合し、フレームワーク自体の制約をあまり気にすることなく、可能な限り「思った通りの結果」を実現できます。 コミュニティ。完全なドキュメントとガイドが提供され、ユーザーは包括的なチュートリアルを通じて入門から上級までのプロセスを完了できます。質問がある場合は、コミュニティでタイムリーなコミュニケーションのさまざまな機会を得ることもできます。 落とし穴に関する警告: 実稼働環境の展開には依然として大きな問題が残っています。 PyTorch が学術界で際立っている主な理由は、「研究」では自分のアイデアを迅速に実現して検証することに重点を置いており、一般的に「速ければ速いほど良い」というデプロイメントの問題にはあまり注意を払っていないためです。しかし、業界では、迅速かつ安定した導入が求められています。そうでなければ、実験で節約した時間を、生産開始時に2倍の時間をかけて返済しなければならなくなります。 要約: PyTorch の使いやすさは間違いなくその切り札です。このため、PyTorch を学び始める人が増えていますが、業界での導入の問題は避けられません。当然のことながら、これらの長所と短所を完全に理解すると、これらのディープラーニング フレームワークはツールであり、学習すればするほど選択肢が増えることを理解できるはずです。 公式サイト: https://pytorch.org/ 国産ディープラーニングフレームワークの自社開発への道 2020年上半期には、Huawei Mindspore、MegEngine、Tencent TNN、Tsinghua Jittorなど、いくつかの国産AIフレームワークが徐々にオープンソース化されることが発表され、議論が白熱しました。最近、一流技術のOneFlowは、アクターモデルとSBPメカニズムの導入を先駆けて進めており、そのユニークな設計で注目を集めています。多くの人々は、完全なエコシステムを備えた成熟したオープンソースのディープラーニングフレームワークがすでに存在する場合、中国の企業や機関が別のフレームワークを作成する必要があるのかと考え始めています。自社開発のディープラーニングフレームワークには、どれくらいのイノベーションの余地があるのでしょうか? 近年、基礎技術の「ボトルネック」問題が徐々に表面化してきました。少し前に米国政府が発令した「チップ禁止令」により、ファーウェイは非常に消極的な立場に追い込まれた。過去の経験は未来への教訓である。中国が次世代の人工知能を開発したいのであれば、自主的な研究開発を通じて基礎となるAI技術を習得することが、将来に備えるための重要な手段であることは間違いない。したがって、独自のディープラーニング フレームワークを開発することが非常に重要です。しかし、既存の成熟した枠組みを超えるのは難しいことは関係者全員が理解している。では、その解決策は何だろうか? ディープラーニングフレームワークの統合は時代の潮流であり、TensorFlow 2.0とPyTorchは確かにますます似通ってきていると多くの人が信じていますが、実際にはディープラーニングフレームワークの市場は巨大で、ユーザーのニーズも多様であるため、特定の企業や製品が独占することは不可能です。かつては TensorFlow が唯一の支配的存在でしたが、PyTorch が登場して以来、2 つの勢力が急速に対立する状況になりました。鍵となるのは、元々の設計意図の違いです。 TensorFlow は業界を対象としており、推論に重点を置いており、展開において産業レベルの安定性を実現しています。一方、PyTorch は学術界を対象としており、トレーニングに重点を置いており、シンプルで使いやすく、迅速な実装と検証を実現できます。結局、二人はそれぞれの分野で主導的な地位を確立しました。 差別化は、独立したディープラーニング フレームワークの開発を成功させる鍵となる可能性があります。模倣だけに頼るフレームワークには、絶対に解決策はありません。既存の成熟したディープラーニング フレームワークとどのように差別化し、独自の機能を作成するかは、多くの開発チームが検討しなければならないことです。 PaddlePaddleは豊富なモデルライブラリを持ち、MegEngineはトレーニングと推論の統合を追求し、Mindsporeは自動並列トレーニング機能を深く追求し、OneFlowは分散環境でのパフォーマンス向上に重点を置いています...「一輪の花が咲く」ことと比較すると、「百輪の花が咲く」ことは間違いなく、国内のディープラーニングフレームワークの長期的な発展にさらに有利です。 [結論]ディープラーニングフレームワークは、AIの基盤ツールとして、個人がディープラーニングの世界に入るための鍵となります。ディープラーニングフレームワークを習得することは、ディープラーニングを理解することを意味しません。AI開発で違いを生み出すには、フレームワークの背後にある技術、実践、エコロジーを真に理解することが重要です。 |
>>: ボストンスポットのミニバージョンを実現するための 3000 行のコード: 殺せないゴキブリになりたい!
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
この記事では、Ibotta (「Rebate Network」の米国版) の機械学習およびデータ サ...
山東省寿光市は中国の有名な野菜生産地です。そこには野菜温室がいくつあるのでしょうか? 機械で数えてみ...
ChatGPT キング爆弾の新たな波が来ています。本日、OpenAI は「カスタム指示」と呼ばれる...
この話題を始める前に、もう一度皆さんの無知を解明させてください。私が解明したいのは、座標系についての...
モノのインターネット (IoT) と人工知能 (AI) の融合により、産業の風景に革命をもたらす変革...
Indeed Recruitment Network が 2019 年の給与リストを発表したところ...
北京時間8月19日朝のニュースによると、2019年4月にテスラが「自動運転の日」イベントを開催したと...
この共有のテーマは、「OpenLLM を使用して大規模な言語モデル アプリケーションを迅速に構築およ...
[51CTO.com クイック翻訳] 海外メディアの報道によると、誰かが設計しているロボットがあな...
k-means アルゴリズムは比較的単純です。 k-means アルゴリズムでは、クラスターはクラ...
自動運転は今とてもホットな話題です。一般の人々も自動車会社も自動運転に強い関心を持っています。現在、...