ゼロから始めるディープラーニング1で143pのRelu関数のところでself.mask=Noneで値を保持すると書いてあるが、なぜ、self.mask=Noneで値を保持できるのかがわからないので教えていただきたいです。
python
1class Relu: 2 def __init__(self): 3 self.mask = None # このNoneが値を保持する意味がわからない 4 5 def forward(self, x): 6 self.mask = (x <= 0) # 0以下ならTrue 7 out = x.copy() 8 out[self.mask] = 0 9 10 return out 11 12 def backward(self, dout): 13 print(f'self.mask:{self.mask}') 14 dout[self.mask] = 0 15 dx = dout 16 17 return dx
クラスとインスタンス、プロパティに関しては理解はどれくらいありますでしょうか?
> 値を保持
インスタンス初期化時に、
maskというプロパティに、Noneという値を代入(保持)する、という構文ですが、
そういうことを聞きたいということでしょうか?
初期化するごとにいちいち、Noneというあってもなくてもいいようなものをなんで代入するのかな?と思ったのと、なぜNoneを代入することにより値を保持できるのかがわからないので教えていただきたいです。
https://teratail.com/questions/339604
の方も同じ質問内容ですので、
回答がついてない方の質問は削除申請して下さい。
その旨を、ppaulさんに聞いてみるとよいかと。
(回答していただいているので)
それは私の質問です。
同じ質問をしたらダメらしいですね。すみません。ありがとうござます。あともしよかったら、この質問に答えてくださると嬉しいです。
teratailはけっこうルールに厳しい方が多いので…
回答させていただきました。
回答依頼いただきましたが、既に回答した内容以上でも以下でもないので、追加回答のしようがありません。
回答2件
あなたの回答
tips
プレビュー