TensorFlow には重大なバグがあり、Keras と併用すると重量が減る可能性があるが、まだ修正されていない。

TensorFlow には重大なバグがあり、Keras と併用すると重量が減る可能性があるが、まだ修正されていない。

[[333827]]

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

最近、NLP エンジニアの Gupta 氏は TensorFlow に重大なバグを発見しました。

カスタム レイヤーで Keras 機能 API を使用しているすべての方にご注意ください。 Keras の Functional API で作成された重みを使用すると、損失が発生する可能性があります。

このトピックは Reddit の機械学習セクションで熱く議論され、多くの TensorFlow ユーザーの共感を呼びました。

具体的には、API でカスタム レイヤーを使用すると、trainable_variables の重みが更新されなくなります。また、これらの重みは non_trainable_variables にも設定されません。

つまり、元々トレーニングする必要があった重みが凍結されることになります。

エンジニアが不満に思っているのは、約1か月前にGitHubでGoogleにバグを報告したにもかかわらず、Googleがまだそれを修正していないことです。

解決

自分のコードに同様の問題が発生するかどうかを確認するにはどうすればよいですか?モデルをテストするには、model.trainable_variables を呼び出してください。

  1. iの場合、var を enumerate(model.trainable_variables):
  2. print(model.trainable_variables[i].name)

すべての変数の重みが正しいことを確認してください。重みが欠落しているか変更されていない場合も、影響を受けます。

Gupta 氏は、Colab ノートブックの Transformer ライブラリで作成されたモデルのバグも再現しました。興味のある読者は、ぜひご覧ください。

参考:https://colab.research.google.com/gist/Santosh-Gupta/40c54e5b76e3f522fa78da6a248b6826/missingtrainablevarsinference_var.ipynb

Gupta 氏はこの問題の解決策として、代わりに Keras サブクラスを使用してモデルを作成する方法を示しました。代わりにこの方法を使用すると、すべての重みが trainable_variables に表示されます。

機能 API とサブクラス化アプローチで作成されたモデルが同一であることを確実にするために、Gupta は各 Colab ノートブックの下部で同じ入力を使用して推論を実行しましたが、モデルの出力はまったく同じでした。

ただし、機能 API モデルを使用したトレーニングでは、多くの重みが固定されたものとして扱われ、これらの重みは non_trainable_variables にも表示されないため、これらの重みを固定解除する方法はありません。

Google が最近この脆弱性を修正したかどうかを確認するために、Gupta 氏はフレームワークを最新の状態に維持するために TF 2.3.0-rc1 の Nightly バージョンもインストールしましたが、バグはまだ存在しています。

ネットユーザー:PyTorchを使ってみよう

先ほど、Keras の創設者が Twitter で、これは Keras のバグではないと返信し、プログラマーにユニット テストを使用するよう提案しました。

Gupta 氏が言及したバグに関して、一部のネットユーザーは、TensorFlow と Keras 間で重みを転送したときに同様のエラーが発生したため、PyTorch に切り替えたと述べています。

さらに、多くのネットユーザーも、Googleのフレームワークは完璧ではなく、管理方法が混乱していると反省し、ユーザーにTensorFlowのバグのテストに協力するよう求めている。

一方、PyTorchはわかりやすいドキュメントがあり、最近では公式から無料の電子書籍もリリースされました。PyTorchを使うのってすごくいいですよね。

現在、どのディープラーニング フレームワークを使用していますか? 同様の重大なバグに遭遇したことがありますか?

<<:  清華大学と北京大学がケンブリッジ大学を上回り、Googleがリストを独占、百度が中国企業をリード、ICML2020ランキングが発表

>>:  TensorFlow の最大の機械学習データセット 30 件

ブログ    
ブログ    

推薦する

機械学習モデルは展開するには大きすぎますか? 3つの解決策をご紹介します

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

WaymoとGoogleが自動運転のマルチ軌道行動予測を実現するTNTモデルを提案

はじめに: Waymo は最近、フェニックス地域で安全担当者なしの無人タクシーの運行を開始すると発表...

...

AIが中古高級品の真贋を判別、同社は精度は99.1%と主張

12月26日、高級品鑑定機関Entrupyは人工知能技術を使用して、さまざまなブランドのハンドバッグ...

AIoT は私たちの未来をどのように定義するのでしょうか?

[[417111]] AI と IoT ほどエキサイティングで重要なテクノロジーの組み合わせはほと...

...

お金は人を幸せにできるのでしょうか?機械学習を使って答えを見つける方法を教えます

機械学習システムを分類する 1 つの方法は、一般化の程度によって分類することです。ほとんどの機械学習...

Julia言語を使用して「準同型暗号化+機械学習」を実装するには?

[[285696]]最近、「ブロックチェーン」や「フェデレーテッドラーニング」などの概念がかつてな...

検索エンジン技術のランキングアルゴリズムを解読する

[[117973]] 1. ページランクPageRank は、世界で最も人気のある検索エンジンである...

月間 30 万個の H100 チップ、Nvidia は Intel にチップの製造を依頼しているのでしょうか? CoWosの生産能力が低すぎるからといって

TSMCの生産能力不足により、Nvidiaはチップ製造をIntelに頼らざるを得なくなったのか? T...

...

多くのビッグデータサイエンティストが仕事を辞めた?理由を説明しましょう。

はい、私はデータ サイエンティストです。はい、あなたはそれを正しく読みました。しかし、誰かがそれを言...

2024年までにAIが広告に革命を起こす

人工知能 (AI) は、コンテンツの作成や顧客のセグメンテーションからキャンペーンの最適化まで、マー...

研究者は人工知能を使って交通事故を事前に予測する

研究者らは、過去の衝突データ、道路地図、衛星画像、GPS に基づいてディープ モデルをトレーニングし...