問題タブ [matconvnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1896 参照

python - Matlab (Matconvnet) から Python (Keras) に CNN モデルをインポートする

Matconvnet で Matconvnet を使用して、CNN でバイナリ分類を行っています。そして今、私は Python で Keras を使ってそれを実現しようとしています。ネットワークはまったく複雑ではなく、Matconvnet で 96% の精度を達成しました。しかし、Keras では、すべての設定が以前とまったく同じになるように最善を尽くしても、同じ結果を得ることができません。さらに悪いことに、モデルはまったく機能しません。

設定の詳細をいくつか紹介します。どんなアイデアや助けも大歓迎です!

  • 入力

    画像は20×20サイズです。トレーニング サイズは 400、テスト サイズは 100、検証サイズは 132 です。

    • Matconvnet: 20*20*sample_size メソッドで保存された画像
    • Keras: sample_size*20*20*1 メソッドで保存された画像
  • CNN 構造 (3*3)*3 conv- (2*2) maxpooling- fully connected- softmax- logloss

    • Matconvnet: 全結合層の代わりに畳み込み層を使用します。コードは次のとおりです。

      /li>
    • ケラス:

  • 損失関数
    • マット変換:softmaxloss
    • ケラス:binary_crossentropy
  • オプティマイザ

    • Matconvnet: SGD

      /li>
    • ケラス: SGD

      /li>
  • 初期化: フィルター:N(0,0.1)、バイアス: 0
  • 正規化: 画像の平均値が 0 で標準値が 1 の入力中の正規化以外のバッチ正規化はありません。

上記は、正しいレプリケーションを行ったことを確認するために確認した側面です。それでも、Keras で動作しない理由がわかりません。ここにいくつかの推測があります:

  • Matconvnet は、完全に接続されたレイヤーの代わりに畳み込みレイヤーを使用し、パラメーターを更新するための凝った方法を意味する場合があります。
  • これらは、異なるアルゴリズムを使用して、パラメーターが異なる意味を持つ SGD を適用します。

私も他の試みをしました:

  • Keras のオプティマイザを に変更しAdadelta()ます。改善なし。
  • ネットワーク構造を変更し、より深くします。できます!

    しかし、Matconvnet がはるかに単純な結果でその良い結果を達成できる理由を知りたいと思っています。

0 投票する
1 に答える
81 参照

matlab - ディープネットワークのマリックスのMatconvnet出力は、さまざまな値ではなく均一な値ですか?

寸法 20x20x1x50 のネットワーク出力から密度マップを作成しようとしています。ここで、20x20 は出力マップで、50 はバッチ サイズです。

問題は、出力 X の値が各出力行列で 0.098 に等しいことです..20x20。密度マップのようなガウス形状はありませんが、20x20x1x50 のフラットな同様の値の出力マップがあります。問題は、添付の図に示されています。ここで何が欠けていますか?バックプロパゲーションのユークリッド損失は次のように与えられます。

ここに画像の説明を入力