1
私はdeconvolutionプロセスを実現するためにpycaffeのbackward関数を使用しています。私はまずフォワード・プロセスを実行し、ネットの出力データ・ブロブを取得し、次にデータ・ブロブをトップ・レイヤの差分ブロブに割り当てて、バックワード・プロセスを実行します。ただし、下位層の差分は、逆方向処理によって変更されず、すべてゼロになります。 diffがなぜ後方に転送されないのか分かりません。 name_list_上記のコードでpycaffeはdiffを上から下に転送できません
def backward(fcn_net, im, name_list_, target_blob):
start=name_list_[len(name_list_)-1]; end=name_list_[0]
print(start, end)
fcn_net.blobs[start].diff[...]=im[...]
fcn_net.backward(start=start, end=end)
return fcn_net.blobs[target_blob].diff
全てCONV層とプーリング層秩序、および最後CONV層から後方開始を含んでいます。ありがとう!