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 件

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

勾配降下法はAI専門家やネットユーザーの間で白熱した議論を巻き起こす:全員の答えは読む価値がある

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

プログラマー試験ノート4: ソートアルゴリズム

理由はよく分かりませんが、WORD ファイル内のすべての日付が変更されました。WORD マクロ ウイ...

実用的なCNN畳み込みニューラルネットワークは、99.5%の精度で検証コードを認識します

1. 背景2年間運営してきた個人プロジェクトですが、最近対象サイトがスキャンコードログインに変更にな...

鄒聖龍が初めて人工知能について公に語り、荀雷の将来の計画が明らかにされた

「ビジネスを運営する観点から見ると、人工知能には2つの陣営があります。1つは人工知能プラットフォーム...

人工知能時代に対応するための知識と技術の蓄積を向上させる

記者がインタビューした専門家によると、人工知能などの知能化技術の応用が加速するにつれ、雇用への構造的...

2022年の人工知能の7つのトレンド

近い将来に大きな価値を生み出す可能性のある技術の予測となると、人工知能は間違いなくリストのトップに位...

クラウドコンピューティング、ビッグデータ、AI の関係と違いを 1 つの記事で理解する

クラウドコンピューティング、ビッグデータ、人工知能という言葉は誰もが聞いたことがあると思いますが、こ...

...

携帯電話の顔認識は本当に安全ですか?

​​​ [51CTO.com クイック翻訳]顔認識は、セキュリティメカニズムとして、ますます多くの携...

AIを活用した超解像技術の実装

近年、ディープラーニング技術の急速な発展に伴い、AIベースの超解像技術は画像修復や画像強調の分野で幅...

AIイノベーションセンタートラックのリーディングカンパニー:智源匯が成都のスマート鉄道輸送の構築を支援

9月1日、成都地下鉄全線で「スマート旅客サービスプラットフォーム」がオンラインで開始されました。この...

YOLOがBEVセンシングに参入! YOLO+BEVのリアルタイム検出の試み

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

Microsoft のエンジニアが PyTorch を使用してグラフ アテンション ネットワークを実装し、驚くべき視覚効果を実現

最近、グラフアテンションネットワークの視覚化に関するプロジェクトが多くの研究者の関心を集めており、開...

ソファがリモコンに変身、PCBが落書きに隠れる、MITの技術オタクのスマートホームはこんな感じ

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...