PyTorch 1.8 と Tensorflow 2.5、どちらを使用すればよいですか?

PyTorch 1.8 と Tensorflow 2.5、どちらを使用すればよいですか?

[[408717]]

ディープラーニングが再び認知されて以来、多くの機械学習フレームワークが登場し、研究者や業界の専門家の間で新たな人気を博そうと競い合っています。 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 つのライブラリ間のコーディング スタイルには若干の違いがあります。

[[408718]]

PyTorch は OOP (オブジェクト指向プログラミング) スタイルで知られています。たとえば、カスタム モデルまたはカスタム データセットを作成する場合、デフォルトの PyTorch ライブラリから継承する新しいクラスを作成してから、コードを調整する可能性が高くなります。 OOP は何らかの方法でコードに構造を提供しますが、コード行数の点でコードが非常に長くなります。

一方、Tensorflow を使用する場合は、Keras を使用することになります。たとえば、Kaggle のコンペティション (教師あり学習による画像分類、オブジェクト検出、画像セグメンテーション、NLP などのタスク) に参加すると、Keras のコード実装が PyTorch よりも短いことがわかります。初心者/中級者にとっては、コード行を読んだり分解したりするのに多くの時間を費やす必要がないため、これは非常に良い選択肢です。

場合によっては、機械学習の特定の分野で特定のモデルを見つける必要があります。たとえば、物体検出のコンペティションに参加していて、DETR (Facebook のデータ効率の良いトランスフォーマー) を実装したいと思ったとき、ほとんどのリソースが PyTorch で書かれていることがわかったので、この場合は PyTorch を使用する方が簡単でした。さらに、PyTorch の実装は、多くの低レベルの詳細をカバーしているため長くなります。これは利点であると同時に欠点でもあります。初心者の場合は、まず低レベルの詳細を学習し、その後 Keras などの高レベルの API を使用すると非常に役立ちます。ただし、多くの詳細とかなり長いコード スニペットに迷ってしまう可能性があるため、これは欠点でもあります。したがって、基本的に、厳しい期限内で作業している場合は、PyTorch よりも Keras を選択することをお勧めします。

<<:  AIコンピューティングパワーギャップを越えて、人工知能コンピューティングセンターの産業的価値が強調される

>>:  ディープラーニングベースの対話状態追跡のレビュー

ブログ    

推薦する

上位 10 の古典的なソートアルゴリズムの JS バージョン

序文読者は自分で試してみることができます。ソースコードはここ (https://github.com...

...

スマート製造:デジタル世界と物理世界の統合

スマート製造:デジタル世界と物理世界の統合自動車業界と製造業界の状況の変化により、サプライ チェーン...

...

中国電信が星辰AIビッグモデルをソース公開:LLM研究開発を完了し、オープンソース化した初の中央企業

予期せぬことに、オープンソースのビッグモデル ファミリーに特別なプレーヤーが登場しました。国営企業か...

AirPodsは「あなたの脳を読む」ことができるのか?あるいは汗中の乳酸濃度も監視できるタイプ|ネイチャー

AirPods は脳の信号を監視できますか? !それともアルツハイマー病やパーキンソン病を予測できる...

将来、軍隊は完全に人工知能になるのでしょうか?空想するのはやめてください!全体的な傾向と方向性は変えられない

現在の国際情勢から判断すると、将来の軍事兵器の開発は主に宇宙に向けられることになるが、スペースシャト...

ディープラーニングの救済: 不十分な注釈付きデータによるディープラーニング手法

概要: ディープラーニングのデータ依存の問題を解決し、データ注釈コストを削減することが、業界の研究の...

AI時代のネイティブ:3歳でパズルを作り、5歳でプログラミングを学ぶ

[[241540]] 2018年世界ロボットコンテストで、子どもたちがロボットのプログラミングと制御...

ビジネスにおいて人工知能との共生関係を築くには?

現代では、意図的か否かに関わらず、私たちは皆、人工知能に触れたり、人工知能を使用したりしています。私...

人工知能時代の未来の人材をどう育成するか?専門家や名門校の校長はこう言う

人工知能の時代、未来の人材をどう育成するか? 10日、2019年重慶人材大会第4回大学・高校教育発展...