TensorFlow は長い間、使いにくいと批判されてきました。 TensorFlow 2.0 のリリースにより、この「国民の憤り」は最高潮に達したようです。 昨日、Reddit のユーザーが PyTorch から TF 2.0 に切り替えようとしている (なぜそんなに必死なのかは言わなかったが) が、次のように不満を述べていた。「本当に「難しすぎる」」 TensorFlow 2.0 について不満を述べたこの投稿は、同じ感情を共有するネットユーザーから多くの「いいね!」を獲得しました。 切り替え後、TF 2.0 に関して彼が最も感じたことは、ライブラリ自体には何も問題がないということでした。本当の問題は、公式ガイドライン、詳細なドキュメント、公式開発チームからの質問への回答が不足していたことです。 まず第一に、彼は TensorFlow の情報が不完全であると感じました。ユーザーの間で非常に一般的なパイプラインの多くは、自分で行う必要がありました。そして、何事にもやり方はたくさんあるようです。厄介なのは、これらの方法には微妙な違いがあるのに、公式ドキュメントではその違いが説明されていないことです。GitHub の問題を調べることしかできず、見つけられるかどうかは運次第です。 次に、Medium には TF 2.0 関連の非公式ブログが多数あるが、これらのブログには多くの誤った情報が含まれており、中には広告であるものもあることを発見しました。 最終的に、彼は、インターネット上に TF に関する多くの質問があるが、誰もそれに答えておらず、そのうちのいくつかは 1 年前にも質問されていたことを発見しました。これらの問題は深刻であり、公式ドキュメントには記載されていません。対照的に、PyTorch には、質問をして PyTorch 開発者から回答を得ることができるフォーラムがあり、これは TensorFlow よりもはるかに優れています。 ポスターでは、TensorFlow と PyTorch の質問のバックログも比較し、PyTorch には未回答の質問が 2101 件しかないのに対し、TensorFlow には 24,066 件あることがわかりました。そのギャップは衝撃的です。 したがって、著者の全体的な感想としては、TensorFlow アーキテクチャ自体に大きな問題はないが、それが提供するユーザー エクスペリエンスが本当に貧弱すぎるということです。 最後に、ネットユーザーは、魂を問うような質問をせずにはいられなかった。「ユーザーが最良の使用方法を習得するのに十分な情報を提供しないのであれば、良い製品を作る意味がどこにあるのでしょうか?」 諺にあるように、一つの石が千の波紋を引き起こすこともある。このネットユーザーの苦情は多数のTFboys(ガールズ)の共感を呼び、その投稿はTF2.0の大規模な苦情サイトとなった。 TF2.0は広く批判されている スレッドをフォローしたネットユーザーは、投稿者が提起したいくつかの質問に同意するだけでなく、Keras との統合など、TensorFlow 2.0 自体のいくつかの問題点も指摘しました。 コメントを投稿したネットユーザーの主な意見は次のようにまとめられる。 公式文書が不十分/公式文書を見つけるのが困難。 多くのバグが時間内に修正または更新されませんでした。 Keras との統合が非常に不十分で、ユーザーの混乱を招きます。 バージョン2.0のドキュメントとチュートリアルには多くの欠点がある あるネットユーザーは「TFの黄金時代には、使いやすいチュートリアルがたくさんあり、公式サイトのチュートリアルの質も非常に高かった。しかし、Kerasが導入されて以来、ガイドドキュメント全体がKerasと従来のTFの混合になってしまった」と書いている。このコメントには多くの人が同意した。 TF1.x バージョンの学習コストは高いものの、(チュートリアルは) 非常に一貫性があり、tensor2tensor などのコード ライブラリがあるため、古いバージョンの使用はそれほど難しくないと言う人もいます。 公式チュートリアルがないため、コミュニティは自力で対処せざるを得ず、多くの人が他のチャンネルから関連するチュートリアルやガイドを探す必要があります。しかし、非公式のチュートリアルは必ずしも信頼できるとは限りません。例えば、あるネットユーザーはこう書いている。 私の物語: 1. トレーニング中に損失関数の「形状」を徐々に変更したいというアイデアがあります。 2. 「tensorflow トレーニング中の損失関数の変更」を検索しました。 3. 検索結果の一番上には Medium の記事があります。見てみましょう。 4. この Medium の記事では、平均二乗誤差 (MSE) 損失関数と、それを使用して TensorFlow でディープ ニューラル ネットワークをトレーニングする方法について紹介しています。 5. キーボードに頭を打ち付けるしかなかった。 チュートリアルのテキストが無関係であるというだけの問題ではありません。投稿者が述べたように、非公式のチュートリアルには多くのエラーが含まれる可能性があり、ユーザーが問題を解決するためのコストが増加します。当然ながら、時間が経つにつれて、TF2.0 を使いたがる人は誰もいなくなります。 さらに、フォロワーからのフィードバックにより、投稿者が提起した 3 番目の問題も確認されました。つまり、質問やフィードバックが多すぎて、タイムリーに処理されなかったということです。 遅延したフィードバックとバグのバックログ これは、TF コミュニティ自体がより人気があり、フレームワークに関する質問やフィードバックが多いため、質問やバグ修正に対する TF の公式応答が PyTorch よりも遅いように見えるためである可能性があります。ポスターにもあるように、TensorFlow には PyTorch よりも 10 倍以上の未解決の質問があります。さらに、PyTorch にはプラットフォーム上の質問に答える専任チームがあります。 オープンソース ソフトウェアの場合、パフォーマンス、使いやすさ、セキュリティを向上させ、バグを減らす最善の方法は、ユーザーからのフィードバックを継続的に収集し、それに応答し、フィードバックに基づいてエラーや問題を修正することです。ただし、TF2.0 がこれらの問題にタイムリーに対処しないと、ソフトウェア自体は改善し続けることができなくなります。 ユーザーが問題に遭遇した際に、TF 担当者がタイムリーにフォローアップして問題を改善できるからこそ、ユーザーが継続して利用し続けることができるのです。あるネットユーザーは、TF2.0の使用中に多くの問題に遭遇したが、幸いにも公式開発マネージャーがフォローアップして問題を解決したため、TF2.0を使い続けるつもりだとコメントしました。 これら 2 つの問題に加えて、多くの人々が依然として Keras と TF の組み合わせについて不満を述べていました。 Kerasは使いにくくなる 一部のネットユーザーは、TF2.0 には Keras と TF2.0 の「結婚」という、もう 1 つの使用できない側面があると考えています。上の写真の人物は、Eager モードは確かに TF バージョンの更新と反復処理の正しい方向である (結局のところ、諸悪の根源であるセッションを削除し、動的グラフをサポートする) が、Keras の導入により API がさらにわかりにくくなると述べています。現在、モデルを構築する方法は tf.keras、tf.function など多数あります。 これらは、TF2.0 が現在直面している問題です。しかし、最初のバージョンであるアルファ版のリリースから半年以上が経過しました。なぜ、開発コミュニティを悩ませる問題がまだこれほど多く残っているのでしょうか。過去に公開された情報を整理すると、TF2.0の設計思想に何らかの問題があり、本来は使いやすさを重視して開発されたフレームワークが使いにくくなっているのではないかとMachine Heartは考えています。 アイデアがわかりにくく、フレームワークが使いにくい TensorFlow2.0自体の位置づけとしては、複雑で冗長なAPIを削減し、ユーザーの使用閾値を下げ、ディープラーニングの研究分野や普及に向けた開発を推進することにあります。この考えは正しいのですが、実際の設計段階では、上記の目標を達成するために採用されたソリューションは正しくなく、結局 TF2.0 は依然として使いにくいものになってしまいました。 Kerasを導入するのは間違いかもしれない Keras は、TF などのディープラーニング フレームワークをカプセル化した、非常に使いやすいコード ライブラリです。 TensorFlow は、使い始めるのが難しいという多くの批判の問題を解決するために Keras API を導入しました。しかし、TensorFlow の位置づけや機能から判断すると、現時点では Keras との組み合わせは十分に成功していないと言えます。 下の図に示すように、TensorFlow 自体はアーキテクチャ内に非常にきめ細かい低レベル API を備えているため、さまざまな面でのカスタマイズに非常に適しています。しかし、Keras は正反対です。ユーザーは基盤となるアーキテクチャの構築方法を知らず、全体的な設計プロセスにのみ集中する必要があります。 これら 2 つのフレームワークは両極端であると言えますが、TF2.0 では妥協した形の互換性が使用されています。TF2.0 自体は柔軟なモデルを構築するために PyTorch メソッドに従いますが、この設計を必要としないユーザーは tf.keras 高レベル API を使用します。このように断片化された API により、ユーザーは圧倒され、チュートリアルを見つけるのが難しくなります。TF2.0 を検索するだけでなく、このチュートリアルが TF2.0 自体に関するものか、tf.keras に関するものかを判断する必要があるためです。 画像ソース: https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/ これは、あらゆる種類の API が混在していた TF1.x 時代の状況に少し似ています。同じ機能を異なる API で実装できるのです。ただし、異なる機能の API を組み合わせると、一部の API に互換性がなくなる可能性があります。 たとえば、tf.keras を使用して、model = tf.keras.Sequential でネットワークを構築しました。そのトレーニング ループはどのようになっているでしょうか? model.fit() を使うべきでしょうか?または、 tf.GradientTape() を Tape として使用しますか? 損失関数で特定のラベルの損失をカスタマイズする場合、どこを変更すればよいですか? 冗長な API により追加の学習コストが増加し、当然ながらユーザーに多くの新たな質問が生じます。これらの質問やエラーが適時に解決されない場合、ユーザーはこのフレームワークの使用に興味を失ってしまいます。 さらに、分散トレーニングとデータ並列性/モデル並列性の要件により、フレームワークが複雑になるほど、ユーザーが使い始めるのが難しくなります。 TF2.0 フレームワークはすでに非常に複雑です。 現在の TF2.0 アーキテクチャはすでに非常に複雑です。画像ソース: https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/ メジャーバージョンのアップデートは古いユーザーに悪影響を及ぼす もう 1 つの厄介な問題は、TF 2.0 が研究と生産の両方で非常に人気のあるディープラーニング フレームワークにすることを明確に意図していることです。そこでバージョンアップの際には大きな一歩を踏み出し、1.x 時代の多くの API を切り捨て、シンプルな機能を追求するユーザーに使ってもらえるようにしました。 しかし、実稼働レベルのコード製品が最も恐れているのは、突然の下位互換性のないバージョン アップデートであることを忘れないでください。多くの企業は、モデルを導入すると、それが長年にわたって安定して業務運営をサポートできることを期待します。本当に必要な場合(セキュリティ上の問題、パフォーマンスに大きなアップグレードが必要)がない限り、更新する動機はほとんどありません。 しかし、TF2.0 を新しいユーザーに使ってもらうために、公式では多くの API が削除されており、古いバージョンとの互換性がありません。モデルの再開発、トレーニング、展開にかかるコスト、およびそのプロセスにおける企業ビジネスへの影響を考慮すると、業界ではこのようなアップデートにほとんど関心がありません。言うまでもなく、新しいバージョンにはまだ致命的なバグが残っています。 今年 1 月、TF2.0 の tf.keras API のドロップアウトが無効であることがユーザーに発見されました。ベータ版の問題とはいえ、このような不安定なアップデートを前にしてあえてアップデートして使用するユーザーは少ない。 バージョン アップデートがオープン ソース コミュニティに与える影響は言うまでもなく、多くの開発者は 2.0 をゼロから学習し始める必要があります。 1.x から 2.0 への学習コストも、TF2.0 が使いにくいと感じる理由の 1 つです。 また、時間的に見ると、TensorFlow は PyTorch よりも数年前にリリースされましたが、最近では PyTorch がそれに追随しています。以前、TF チームは 3 つの部分に分かれていて、1 つのグループは 2.0 の開発に忙しく、1 つのグループは Eager の変更に忙しく、もう 1 つのグループは Keras のリファクタリングに注力しているのではないかと推測する人もいました。この気晴らしにより、TensorFlow のユーザー エクスペリエンスへの投資が大幅に弱まり、現在の「苦情」状況につながる可能性があります。 現在、TensorFlow と PyTorch は依然として「産業界 vs. 学界」の競争状態を維持しています。しかし、PyTorch の急速な発展により、この状況はすぐに変わるかもしれません。 もちろん、最も人気のあるディープラーニング フレームワークの 1 つとして、TensorFlow 2.0 を使用する必要がある人は常に存在します。このグループの読者には、GitHub チュートリアル「TensorFlow 2.0 ディープラーニング オープンソース ブック」をお勧めします。このプロジェクトはかつて GitHub のホットリストに載っており、現在は 5,500 個のスターが付いています。このチュートリアルには、サポート書籍、コード、ビデオ コースが含まれており、tf2.0 について学習したい開発者に最適です。 プロジェクトリンク: https://github.com/dragen1860/Deep-Learning-with-TensorFlow-book |
<<: 人工知能は希少疾患を患う4億人の患者がより効果的な診断を受けるのに役立っている
Google アシスタントのような AI アシスタントは、追加データや再トレーニングを必要とせずに、...
2020年まで残り1ヶ月となりました。最近、オンライン教育ウェブサイトのUdemyは、受講生のコース...
ニューラル ネットワーク (NN) アーキテクチャ ダイアグラムの作成には、多くの場合、時間と労力が...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
01エンタープライズデジタルトランスフォーメーションの本質デジタル化により、人間が暮らす現実世界と仮...
バッテリー寿命の決定は、モバイルハードウェアの開発において重要な部分です。しかし、バッテリーの電気化...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
新しいコンセプトが実行可能なビジネスツールになると、多くの企業がそのテクノロジーを積極的に採用して市...
市販の AI ツールを使えば、自分でコードを 1 行も書かずに完全な「Angry Birds」を作れ...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...