問題タブ [deconvolution]
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.
python - scipy デコンボリューションを理解する
私は理解しようとしていますscipy.signal.deconvolve
。
数学的な観点からは、畳み込みはフーリエ空間での乗算にすぎないため、2 つの関数f
とについては次のようになりg
ます。
Deconvolve(Convolve(f,g) , g) == f
numpy/scipy では、これは当てはまらないか、重要な点が抜けています。SO のデコンボリューションに関連するいくつかの質問がありますが (ここやここのように)、この点に対処していません。他の質問は不明 (これ) または未回答 (ここ) のままです。また、SignalProcessing SE に関する 2 つの質問 ( thisおよびthis ) に対する回答は、scipy の deconvolve 関数がどのように機能するかを理解するのに役立ちません。
問題は次のとおりです。
- 畳み込み関数 g を知っていると仮定して、畳み込み信号から元の信号をどのように再構築
f
しますか? - 言い換えれば、この疑似コードはどのよう
Deconvolve(Convolve(f,g) , g) == f
に numpy / scipy に変換されるのでしょうか?
編集:この質問は、数値の不正確さを防ぐことを目的としているのではなく(これも未解決の質問です)、scipyで畳み込み/デコンボリューションがどのように連携するかを理解することを目的としていることに注意してください。
次のコードは、Heaviside 関数とガウス フィルターを使用してこれを実行しようとしています。画像でわかるように、畳み込みのデコンボリューションの結果は元のヘビサイド関数ではありません。誰かがこの問題に光を当てることができれば幸いです。
編集:を使用して矩形信号を畳み込む/デコンボリューションする方法を示す、 matlab の例があることに注意してください
この質問の精神で、誰かがこの例を python に翻訳できればそれも役に立ちます。
python - tensorflow で gen_nn_ops のソース コードを探しています
私は深層学習用の tensorflow を初めて使用し、tensorflow でのデコンボリューション (畳み込み転置) 操作に興味があります。デコンボリューションを操作するためのソース コードを確認する必要があります。関数は、 nn_ops.py の conv2d_transpose()だと思います。
ただし、関数内では、 という別の関数を呼び出しますgen_nn_ops.conv2d_backprop_input()
。この関数の中身を調べる必要がありますが、リポジトリで見つけることができません。どんな助けでも大歓迎です。
c# - メモリ内の数値のリストを乗算することによる畳み込みなので、逆畳み込みアルゴリズムですか?
「畳み込みは周波数領域での乗算」ですが、文字通りの乗算でもあるようです。たとえば、メモリ内の数字を並べてリストに隣接させると、次のようになります。
次に、この結果のリスト/数値を別のそのようなリストで乗算すると、結果は一方のリストと他方のリストの畳み込みになります。次の C# プログラムは、これを示しています。
次のコードを試してください: rextester.com/YPKFA14408
出力は次のとおりです。
出力の最初の行が正しいことを示すデモは、https ://oeis.org/A000292 にあります。
「整数列のオンライン百科事典」…「四面体(または三角錐)数」…「自然数とそれ自体の畳み込み。-フェリックス・ゴールドバーグ」
Q: 提供されたコードのデコンボリューション関数、または結果がどうあるべきかについての私の理解の何が問題になっていますか?
machine-learning - Theano を使用した特徴マップの転置畳み込み
画像の解釈については、CrossValidationで同様の質問をしました。詳細な質問をここに移動して、コードの詳細をいくつか含めます。
私が得ている結果は完全に望ましいものではありません。以前にこの問題に直面したことがあるかもしれません。
完全畳み込みニューラルネットワーク「全結合部分なし」です。
トレーニングパート
最初に、畳み込み関数に一致するように画像が転置されます。(batch_no,img_channels,width,height)
学習率を使用して最適化された学習: 3e-6、Hu_uniform 初期化、およびこの収束までの 500 エポックのネストローブ。
- 訓練費用: 1.602449
- トレーニングロス: 4.610442
- 検証エラー: 5.126761
- テスト損失: 5.885714
後方部
画像を読み込んでいます
1バッチに整形
モデルを実行して、Relu を使用してアクティブ化した後、最初の特徴マップを抽出します
バックワーク モデルを適用して、活性化されたニューロンのみを使用して画像を再構築します
ここでは、2 つの画像の結果が得られます。1 つ目はアクティベーションなしの転置画像で、2 つ目はカーネルが負の重みを持つ可能性があるため、relu を使用したものです。
転置畳み込み画像から、このカーネルがこの画像に関連するいくつかの有用な特徴を検出することを学習していることは明らかです。しかし、再構成部分は、転置畳み込み中に画像の配色を壊しています。ピクセル値が小さな浮動小数点数であることが原因である可能性があります。ここで問題がどこにあるかわかりますか?
tensorflow - convolution_transpose 関数を使用してアップサンプリングを実行する方法は?
tf.slim の convolution_transpose 関数を使用したいのですが、どのようにカーネル サイズとストライドを選択しても、convolution_transpose レイヤーの出力を最初の畳み込みレイヤーの出力よりも大きくすることはできないようです。ここで何か不足していますか?