C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

Pythonのhooks 何でんすか /くまふぁん (19/12/03(Tue) 17:47) #93299
Re[1]: Pythonのhooks 何でんすか /くまふぁん (19/12/03(Tue) 17:52) #93300
│└ Re[2]: Pythonのhooks 何でんすか /Azulean (19/12/03(Tue) 22:03) #93301
Re[1]: Pythonのhooks 何でんすか /Azulean (19/12/03(Tue) 22:05) #93303


親記事 / ▼[ 93300 ] ▼[ 93303 ]
■93299 / 親階層)  Pythonのhooks 何でんすか
□投稿者/ くまふぁん (1回)-(2019/12/03(Tue) 17:47:45)

分類:[その他の言語] 


Pythonで申し訳ございませんが、
Pythonのサンプルコードを解読している途中、下記のようなクラス定義の中に
SFG関数とhooksの意味が分からなくて、ネットで検索しても出なかったので
Pythonに詳しい方教えていただけませんか。


class AAA:
def __init__(self, model, feature_layer):

def SFG(module, in_grad, out_grad):
self.feature_grad = out_grad[0]
self.hooks.append(self.feature_layer.register_backward_hook(SFG))





[ □ Tree ] 返信 編集キー/

▲[ 93299 ] / ▼[ 93301 ]
■93300 / 1階層)  Re[1]: Pythonのhooks 何でんすか
□投稿者/ くまふぁん (2回)-(2019/12/03(Tue) 17:52:06)

この掲示板が解体フォーマットが勝手に変えられたので、
追加説明します:
下記の三行がdef __init__(self, model, feature_layer)の中に存在するもんで、
本来右へずらしていますが、ここの掲示板ではできないみたいです。

def SFG(module, in_grad, out_grad):
self.feature_grad = out_grad[0]
self.hooks.append(self.feature_layer.register_backward_hook(SFG))
[ 親 93299 / □ Tree ] 返信 編集キー/

▲[ 93300 ] / 返信無し
■93301 / 2階層)  Re[2]: Pythonのhooks 何でんすか
□投稿者/ Azulean (1109回)-(2019/12/03(Tue) 22:03:55)
2019/12/04(Wed) 06:17:30 編集(投稿者)

No93300 (くまふぁん さん) に返信
> 本来右へずらしていますが、ここの掲示板ではできないみたいです。
そういう場合は「図表モード」というラジオボタンを使ってください。
隣に「ソースコードを貼る場合はこちらを使用」と書いてありますので…。


> 下記の三行がdef __init__(self, model, feature_layer)の中に存在するもんで、
>
> def SFG(module, in_grad, out_grad):
> self.feature_grad = out_grad[0]
> self.hooks.append(self.feature_layer.register_backward_hook(SFG))

3 行ともじゃなくて、self.hooks 始まりの行は左にずれていませんか?
たぶん、SFG が一行だけの処理を持つ、ローカル関数なのではないかと思います。
https://www.atmarkit.co.jp/ait/articles/1905/28/news017.html

その後、__init__ に戻って、ローカル関数「SFG」を hooks に追加(append)しているのだと思いますが、そのクラスに応じた処理なのではないでしょうか…?
サンプルに特化した処理だと予想しますが、断言できるほど Python になじんでないので…。
(サンプルに特化した処理であれば、第三者に説明できません)
[ 親 93299 / □ Tree ] 返信 編集キー/

▲[ 93299 ] / 返信無し
■93303 / 1階層)  Re[1]: Pythonのhooks 何でんすか
□投稿者/ Azulean (1110回)-(2019/12/03(Tue) 22:05:06)
返信でテキストボックスみたら、そう書いてありましたね。

■No93299 (くまふぁん さん) に返信
> class AAA:
>     def __init__(self, model, feature_layer):
> 
>         def SFG(module, in_grad, out_grad):
>             self.feature_grad = out_grad[0]
>         self.hooks.append(self.feature_layer.register_backward_hook(SFG))

このため、SFG は直下の self.feature_grad = out_grad[0] だけの処理を持つ、ローカル関数です。

[ 親 93299 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -