「ゼロから作るDeep Learning2」を読んで

継続は力なり、ありがとうございます。

斎藤康毅氏の「ゼロから作るDeep Learning」に続いて、次作である「ゼロから作るDeep Learning2」という本を読んでいますが、4章においてGPUを使っての学習でちょっと躓いたので一応記録の意味でブログに載せておきます。
NVIDIA製のGPUを搭載したパソコンの場合、CUDA Toolkitというものを導入してcupyなるライブラリをインストールすればディープラーニングの学習時の膨大な計算をGPUに任せることができるとのことで、いろいろググってcupyなるライブラリをインストールするところまで漕ぎつけました。
そこで、ch04/train.pyファイル中の「# config.GPU = True」のコメント#を外して試してみたところ、エラーが発生。

..................
common\layers.py", line 170, in backward
np.scatter_add(dW, self.idx, dout)
..................
AttributeError: module 'cupy' has no attribute 'scatter_add'

cupyにはscatter_addというメソッドが存在しないと怒られます。
上記エラーのキーワードをいろいろ入れてググってみたところ、あるサイトではcupyのバージョンが新しすぎるのが原因であって、
cupyのバージョンを下げればうまくいくと書いてありました。今回いれたcupyのバージョンを調べてみると「9.4.0」です。
(ちなみにCUDA Toolkitは「11.4」)
そのサイトでは、cupyを「8.0.0」未満にバージョンダウンすればうまくいくとあったのでいろいろやってみたのですが、バージョンダウンしようとすると、赤い文字でエラーメッセージが出てどうもうまくいきませんでした。
新しいcupyのバージョンのままなんとかできないものかとさらにググり続けていたところ、cupyxにscatter_addというメソッドがあるとの情報が。cupyxなんてよく知らないけどなんでもかんでもとりあえずやってみようということで、
common/layers.pyファイルを以下のように修正、

if GPU:
    import cupyx

class Embedding:
    ..............
    ..............
    ..............
    if GPU:
        # np.scatter_add(dW, self.idx, dout)
        cupyx.scatter_add(dW, self.idx, dout)
    ..............

でやってみたら見事学習に成功しました!

最後に、今回私がやった内容が技術的に正しいことなのかどうかは一切わかりませんので、これを見て試される方はあくまで自己責任にてお願いします(笑)

久々のe-Tax起動で

確定申告の時期でもないのですが、時々e-Taxソフトを起動してはバージョンアップの確認や新しいメッセージが来ていないかをチェックしています。そんなんで今回もe-Taxソフトを起動していくつかのバージョンアップをしていたら、ノートンアンチウイルスが反応したようでした。なんか気になったけどそのままICカードリーダにマイナンバーカードをセットして、メッセージが届いていないか確認しようとしたところエラーが発生!
「受付システムとの接続に失敗しました。
エラー情報:(12007)・・・」

あれっ!?あ、今日は祝日でお役所が休みだったか、でもでもたしかお休みの日は別のメッセージが出た覚えが・・・でもなんか気になる。
と思い平日まで待って再度挑戦したところ、やっぱり前日と同じエラーが。やっぱりあの時ノートンが反応して何か起きたのかなぁ。
で、ノートンアンチウイルスの履歴を確認すると以下のような記録がありました。
「データプロテクタはeTaxClient.exeによる疑わしい処理を遮断しました」
プログラムパス「C:\Program Files (x86)\etax\eTaxClient.exe」
プログラム名「eTaxClient.exe」
なので、ノートンアンチウイルスの設定画面から「ウイルス対策」→「スキャンとリスク」→「除外/低危険度」の項目で「スキャンから除外する項目」と「自動保護・・・から除外する項目」の2か所で除外する項目に指定しました。
当初は上記eTaxClient.exeプログラムだけ除外指定してみたのですが、たしかプログラム自体が更新されてしまうと同じ名前であってもノートンは再度監視対象すると思われる(私の勝手な想像)ので、「C:\Program Files (x86)\etax」をフォルダごと除外指定してみました。(もちろんこれだと当該フォルダ下に本物のマルウエアが紛れ込むと検出できなくなる危険性もあるはずですが・・・)

これによりノートンが反応しなくなり、e-Taxソフトはいままでどおり正常に動作するようになりましたが、このやり方が本当に正しいのかどうかまではわかりません。参考にされる方はあくまでも自己責任でお願いします。