【Python3】ValueError: unsupported pickle protocol: 5 の解決方法

起こったエラーとタイミング
今回起こったエラーは
ValueError: unsupported pickle protocol: 5
起こったタイミングはゼロからつくるディープラーニングの74ページに記載されている、ch03/mnist.show.py を実行したときです。
ゼロから作るディープラーニングを持っていないかたでも、ゼロから作るディープラーニングの GitHub にてソースコードを確認することができますのでよかったら参照してください。(ゼロから作るディープラーニングのソースコード ch03/mnist.show.pyを新しいウィンドウで開きます。)
解決方法
GitHubからダウンロードした”ゼロから作るディープラーニング”のソースコードの親ディレクトリを、作業しているディレクトリの親ディレクトリに置くことで解決しました。
またソースコードの内容と自身の作業ファイルの内容が間違っていないか、加えてソースコード通りでもしっかり動くかの確認のために該当がファイルをコピペしました。
一応行ったことは
- ソースコードを親ディレクトリ直下に置く
- ソースコードをコピペする
この2つですが、解決した理由は後者でしょう。
エラーが起こった当時は、”とりあえず動かせるようにして、詳しい原因はキリがついてから”というつもりだったため、お恥かしながら新鮮な記憶がありません。反省します。
当記事を書く前に、エラーが出た状況を再現してもエラーは出なかったため、当時のファイルに不備があったという説が濃厚でしょう。
またエラー解決に参照させていただいた、こちらのPython 3.8 の概要 (その3) – Pickle protocol 5 with out-of-band dataという記事を鑑みても不備があった可能性が高いです。
最後に、英語表記ではありますが同じエラー
ValueError: unsupported pickle protocol: 5
が出た事例を紹介して筆をおかせていただきます。
日本人には読みにくいかと思いますが、目を通しておくと勉強になると思います。
どちらも同じタイトルでややこしいですが、別記事です。