deep-learning-from-scratch-3
deep-learning-from-scratch-3 copied to clipboard
内包表記の変数名が一貫していない
https://github.com/oreilly-japan/deep-learning-from-scratch-3/blob/976e9bf3ad556ce06e1d6c2da78db02d52b4b6a1/dezero/core.py#L198
https://github.com/oreilly-japan/deep-learning-from-scratch-3/blob/976e9bf3ad556ce06e1d6c2da78db02d52b4b6a1/dezero/core_simple.py#L139
書籍のほうでは、後者になっています。おそらく、前者が直し忘れだと思われます。
それに関連してですが、内包表記の変数名が一貫していないのは感心しません。例えば、
https://github.com/oreilly-japan/deep-learning-from-scratch-3/blob/976e9bf3ad556ce06e1d6c2da78db02d52b4b6a1/dezero/core_simple.py#L128
こういうところで、変数名を何故xにするのでしょうか。(inputにしないのは何故なのか。outputsのときだけ変数名をoutputとするのは何故なのか) 一貫性がなくて見ていて気持ち悪いです。
ついでに書籍のほう、p.249
y = self.outputs[0]()
ここ、weakrefだから"()"をつけていることを書籍のほうのソースコード上にも"#weakref"のようにコメントがついていたほうが親切だと思います。
それから、
x, = self.inputs
tailing commaは、このコードを読まされる側としては見落としやすく、バグの原因になりやすいため、括弧をつけたほうがよろしいです。 cf.https://www.python.org/dev/peps/pep-0008/#when-to-use-trailing-commas
例)
(x,) = self.inputs