ディープラーニングが再び認知されて以来、多くの機械学習フレームワークが登場し、研究者や業界の専門家の間で新たな人気を博そうと競い合っています。 Caffe や Theano などの初期の学術的成果から、産業界から多大な支援を受けている PyTorch や TensorFlow まで、多くの研究者は膨大な数の学習フレームワークに直面しており、どのように選択すればよいかわかりません。 機械学習フレームワーク。 Tensorflow/Keras と PyTorch は、今のところ最も人気のある 2 つの主要な機械学習ライブラリです。 TensorFlow は Google チームによって開発され、2015 年にリリースされました。 PyTorch は Facebook のチームによって開発され、2017 年に GitHub でオープンソース化されました。 さまざまな機械学習フレームワークの利点を最大限に活用するために、多くの機械学習実践者はさまざまなフレームワークを比較し、その長所と短所を比較して自分に最も適したフレームワークを選択してきました。 この記事では、機械学習ライブラリ (PyTorch 1.8 と Tensorflow 2.5) を次の 2 つの観点から比較します。
Tensorflow 2.x と Pytorch 1.8 の比較テンソルフロー2.x TensorFlow 1 と TensorFlow 2.x の間には多くの変更があります。 1 つ目は Tensorflow.js のリリースです。 Web アプリケーションがますます普及するにつれて、ブラウザにモデルを展開する必要性が大幅に増加しました。 Tensorflow.js を使用すると、Node を使用してブラウザーで既存の Python モデルを実行したり、既存のモデルを再トレーニングしたり、モデルを完全に Javascript で構築およびトレーニングしたりできます (Python は不要)。 Tensorflow 2.x のもう 1 つのリリースは、モバイル デバイスや組み込みデバイスにモデルを展開するための軽量ライブラリである Tensorflow Lite です。これは、モバイル アプリケーションと Web アプリケーションが、最も主流の 2 つのアプリケーション タイプであるためです。 Tensorflow Lite を使用すると、既存のモデルを圧縮されたフラット バッファーに変換し、そのバッファーをモバイル デバイスやその他の組み込みデバイスに読み込むことができます。ここで行われる主な最適化は、32 ビット浮動小数点値を 8 ビットに変換することです。これは組み込みデバイスにより適しています (メモリ使用量が少なくなります)。 また、本番環境の ML パイプラインを展開するためのエンドツーエンドのプラットフォームである Tensorflow Extended (TFX) のリリースも含まれています。これは、機械学習の最も重要な 3 つの領域、つまり Web アプリケーション、モバイル アプリケーション、および生産管理で優れた機能を発揮します。機械学習の制作パイプラインには、まだ多くの研究開発が必要です。 TFX は、スケーラビリティ、保守性、モジュール性などの従来のソフトウェア制作の課題に対処します。さらに、継続的なオンライン学習、データ検証、データ管理など、機械学習の特定の課題の解決にも役立ちます。 パイトーチ1.8 Tensorflow Lite と同様に、PyTorch は既存の Pytorch Mobile を改良したものです。このフレームワークは、Android および iOS のモデルを量子化、追跡、最適化、保存できます。モバイル デバイス上のバイナリ ランタイムのサイズを縮小する Pytorch Lite Interpreter のプロトタイプもリリースされました。さらに、より具体的なエラー処理とパイプラインの並列処理を通じて、分散トレーニングに対するサポートが強化されます。 Pytorch Profiler は、アプリやモデルの実行時間、実行フロー、メモリ消費などを分析するために使用されます。 Pytorch Lightning は PyTorch 1.8 の一部ではありませんが、言及する価値はあります。ニューラル ネットワークのコーディングをはるかに簡単にする Pytorch Lightning がリリースされました。これは Pytorch 用の Keras と考えればよく、広く使用されています。その理由は、Keras によってモデルの実装がはるかに簡単かつ高速になり、Tensorflow が大幅に改善されるからです。 Pytorch では、Pytorch Lightning が同じ役割を果たします。 どうやって選ぶ? 本質的には、どちらのライブラリも非常に優れており、パフォーマンスと機能の面でも非常に近いです。全体的に、2 つのライブラリ間のコーディング スタイルには若干の違いがあります。
PyTorch は OOP (オブジェクト指向プログラミング) スタイルで知られています。たとえば、カスタム モデルまたはカスタム データセットを作成する場合、デフォルトの PyTorch ライブラリから継承する新しいクラスを作成してから、コードを調整する可能性が高くなります。 OOP は何らかの方法でコードに構造を提供しますが、コード行数の点でコードが非常に長くなります。 一方、Tensorflow を使用する場合は、Keras を使用することになります。たとえば、Kaggle のコンペティション (教師あり学習による画像分類、オブジェクト検出、画像セグメンテーション、NLP などのタスク) に参加すると、Keras のコード実装が PyTorch よりも短いことがわかります。初心者/中級者にとっては、コード行を読んだり分解したりするのに多くの時間を費やす必要がないため、これは非常に良い選択肢です。 場合によっては、機械学習の特定の分野で特定のモデルを見つける必要があります。たとえば、物体検出のコンペティションに参加していて、DETR (Facebook のデータ効率の良いトランスフォーマー) を実装したいと思ったとき、ほとんどのリソースが PyTorch で書かれていることがわかったので、この場合は PyTorch を使用する方が簡単でした。さらに、PyTorch の実装は、多くの低レベルの詳細をカバーしているため長くなります。これは利点であると同時に欠点でもあります。初心者の場合は、まず低レベルの詳細を学習し、その後 Keras などの高レベルの API を使用すると非常に役立ちます。ただし、多くの詳細とかなり長いコード スニペットに迷ってしまう可能性があるため、これは欠点でもあります。したがって、基本的に、厳しい期限内で作業している場合は、PyTorch よりも Keras を選択することをお勧めします。 |
<<: AIコンピューティングパワーギャップを越えて、人工知能コンピューティングセンターの産業的価値が強調される
自動化はテクノロジーを利用して、人間がより多くのタスクを完了できるようにします。物流の自動化をあらゆ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能がマルチドメイン畳み込みニューラル ネットワークを介して JPEG 二重圧縮画像の偽造領域を...
科学技術分野における人工知能技術に関する議論は最高潮に達したようだ。昨年半ば、国務院は「新世代人工知...
[[433039]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitA...
導入人々は長い間、人工的に生成されたコンテンツを理解するためにアルゴリズムを手動でコーディングしよう...
今日、ますます多くの企業が IoT のメリットを活用しています。機械学習、人工知能、即時フィードバッ...
今日は対称暗号化アルゴリズムの重要な問題についてお話ししましょう。暗号化の基本的な概念に精通していな...
[[248121]] [[248122]]最近はアプリが満載のスマートフォンを持っている人はほとん...
多くの IT 企業では、アルゴリズムは面接で非常に重要な部分を占めていますが、実際の仕事でアルゴリズ...
1. 通信ネットワーク運用シナリオまず、通信ネットワーク運用の背景についてご紹介します。通信ネットワ...
[[440100]]半導体チップの継続的な不足が世界の自動車生産の減少につながるとの予測が高まって...
紙: http://wanghao.in/paper/NatureMedicine21_MSA.pd...