🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1374閲覧

ニューラルネットワークを用いた手書き文字認識のセットアップ方法

退会済みユーザー

退会済みユーザー

総合スコア0

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/29 06:27

編集2021/01/30 15:22

https://nnadl-ja.github.io/nnadl_site_ja/chap1.html
このサイトの説明に従って、
CHAPTER 1ニューラルネットワークを用いた手書き文字認識
ができるよう、セットアップを行いたいのですが、つまづきました。

import mnist_loaderを、pythonで入力しても、
ModuleNotFoundError: No module named 'mnist_loader'
と表示されるのですが、どうすれば良いでしょうか。

コマンドプロンプトでpip installするのかなと思って実行した結果が下です。
コマンドプロンプトでの実行結果

コマンド
pip install mnist_loader
実行結果
ERROR: Could not find a version that satisfies the requirement mnist_loader
ERROR: No matching distribution found for mnist_loader
WARNING: You are using pip version 20.3.3; however, version 21.0 is available.
You should consider upgrading via the 'C:\Users\user\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe -m pip install --upgrade pip' command.

どのようにすれば良いでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2021/01/29 07:48

> ができるよう、セットアップを行いたいのですが、つまづきました。 ここに「あなたがやったこと」が書かれていません。
TakaiY

2021/01/29 10:53

リンク先をざっと見ても環境構築の話は書いてないので、ある程度のスキルを持った人を対象にしているようですから、まずは、どこから何を持ってきてどのような環境を作ったのか説明がないとアドバイスはできなさそうです。
退会済みユーザー

退会済みユーザー

2021/01/29 11:27

Python 2.xだと使用できるのですか? 普通にimportで。
退会済みユーザー

退会済みユーザー

2021/01/30 08:53

そもそもimportするpyファイルを指定ディレクトリに入れていませんでした、 入れて、importについては、 mnist_loader.pyのimport部分をimport _pickleに変えると、できました、 そしてまたつまづきました、次、 training_data, validation_data, test_data = \ を実行すると以下のようにエラーが出ました。 Traceback (most recent call last): File "<stdin>", line 2, in <module> File "C:\Users\user\Desktop\cv\mnist_loader.py", line 68, in load_data_wrapper tr_d, va_d, te_d = load_data() File "C:\Users\user\Desktop\cv\mnist_loader.py", line 42, in load_data f = gzip.open('../data/mnist.pkl.gz', 'rb') File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\lib\gzip.py", line 58, in open binary_file = GzipFile(filename, gz_mode, compresslevel) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\lib\gzip.py", line 173, in __init__ fileobj = self.myfileobj = builtins.open(filename, mode or 'rb') FileNotFoundError: [Errno 2] No such file or directory: '../data/mnist.pkl.gz' >>> training_data, validation_data, test_data = \ ... File "<stdin>", line 2 training_data, validation_data, test_data = \ どこをどう直せばよいのか。
quickquip

2021/01/30 09:45 編集

> 以下のようにエラーが出ました 読みました?
退会済みユーザー

退会済みユーザー

2021/01/30 10:11

ざっと。
TakaiY

2021/01/30 10:20

エラは、「../data/mnist.pkl.gz」ファイルが無いって行ってますよね。dataディレクトリはsrcディレクトリと同じ階層にありますから、どこにも書いてませんけど、gitからダウンロードしたファイルのsrcディレクトリで実行することを想定しているんだよ思いますよ。インポートできないと言っていたファイルもそこにありますしね。
退会済みユーザー

退会済みユーザー

2021/01/30 10:43 編集

なるほど、ディレクトリーを移動させて実行すると、 >>> training_data, validation_data, test_data = \ ... File "<stdin>", line 2 training_data, validation_data, test_data = \ ^ SyntaxError: invalid syntax と、次のエラーが出ました、これはインデントエラーみたいなものですかね?
TakaiY

2021/01/30 11:53 編集

「training_d... = \」の後ろに空行ありますよね? そこで改行を入れたら、SyntaxError (文法エラー)になりますよ。
退会済みユーザー

退会済みユーザー

2021/01/30 13:14

改行せずに、2行連続で打ってエンターを押すと・・・ ... training_data, validation_data, test_data = \ ... mnist_loader.load_data_wrapper() Traceback (most recent call last): File "<stdin>", line 3, in <module> File "C:\Users\user\Desktop\cv\mnist_loader.py", line 68, in load_data_wrapper tr_d, va_d, te_d = load_data() File "C:\Users\user\Desktop\cv\mnist_loader.py", line 43, in load_data training_data, validation_data, test_data = cPickle.load(f) NameError: name 'cPickle' is not defined というエラーが出ました。pickleをまた、_pickleに書き換えないといけないんでしょうか、メモ帳で開いて。 なんか、asを使う方法も載っていましたがうまくいかなかったので。 問題はpickleだけでしょうか、どのファイルのを変更すれば良いんでしょうか。
TakaiY

2021/01/30 14:07

cPickleはpythonのモジュールなので、どこかでimportしていると思いますけど、ファイルいじったりしてませんか?
退会済みユーザー

退会済みユーザー

2021/01/30 15:20

mnist_loader.pyのimport cPickleは、エラーが出るので import _pickleに書き換えました、これだけ。
TakaiY

2021/01/30 15:31

そんなことをすれば、cPickleは読み込まれないので、使えないのはあたりまえですよね。
退会済みユーザー

退会済みユーザー

2021/01/30 15:52

しかしエラーが出るのでこうするしか。
TakaiY

2021/01/31 02:49

python2系用に書いてあるコードを3系で動かそうとしているんですよね?であれば、それなりにコードの修正や対応していないパッケージを自力でどうにかしなければなりませんよ。ひっかかるたびにだれかに聞いているようでは解決は難しいのではないかと思います。 であれば、あきらめてpython2系にするか、3系用に書き直してくれているやつを使うかするのがよいのでは?
退会済みユーザー

退会済みユーザー

2021/01/31 06:03 編集

具体的に書くと、 Python3.5で、3.5.2用のファイル一式 https://github.com/MichalDanielDobrzanski/DeepLearningPython35 をDLして、同じディレクトリーでpythonで、 >>> import mnist_loader >>> training_data, validation_data, test_data = \ ... mnist_loader.load_data_wrapper() を実行してみました。 mnist_loader.load_data_wrapper()を入力し、エンターを押した所で、以下のエラーです。 Traceback (most recent call last): File "<stdin>", line 3, in <module> NameError: name 'mnist_loader' is not defined ちなみに、mnist_loader.pyの中身、初めの方は、 # %load mnist_loader.py """ mnist_loader ~~~~~~~~~~~~ A library to load the MNIST image data. For details of the data structures that are returned, see the doc strings for ``load_data`` and ``load_data_wrapper``. In practice, ``load_data_wrapper`` is the function usually called by our neural network code. となっています。この初めの方のmnist_loaderが、なんだそれという事になってるのですかね。 ちなみに、test.pyを実行しようとして、python test.pyと打つと、以下のエラーになります。 SyntaxError: invalid syntax >>> python test.py File "<stdin>", line 1 python test.py ちなみにpython3.5.2はここ https://pythonlinks.python.jp/ja/index.html からDLしました、起動ファイル名はPython 3.5 (64-bit)となってますがこれは3.5.2と同じなんですかね。
TakaiY

2021/01/31 06:13

>mnist_loader.load_data_wrapper()を入力し、エンターを押した所で、以下のエラーです。 こちらで同じ手順をやってみてもエラーにはなりません。import mnist_loader としているのであれば、このエラーは出ないはずです。 ソースコードは間違えていません。 >>> python test.py このコマンドはpythonのプロンプトで打つものではありません。コマンドプロンプトから打つものです。
退会済みユーザー

退会済みユーザー

2021/01/31 06:26 編集

>>> import mnist_loaderとpythonで打つと、以下のエラーになります。 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\user\Desktop\DeepLearningPython35-master\mnist_loader.py", line 17, in <module> import numpy as np ImportError: No module named 'numpy' コマンドプロンプトから、ディレクトリーをカレントに移動してpython test.pyすると、 C:\Users\user\Desktop\DeepLearningPython35-master>python test.py Traceback (most recent call last): File "C:\Users\user\Desktop\DeepLearningPython35-master\test.py", line 156, in <module> import network3 File "C:\Users\user\Desktop\DeepLearningPython35-master\network3.py", line 37, in <module> import theano ModuleNotFoundError: No module named 'theano' となって、やはりエラーでした。
TakaiY

2021/01/31 06:27

エラーメッセージをちゃん と読みました? ImportError: No module named 'numpy' numpyが入っていないと書いてありますよ。
退会済みユーザー

退会済みユーザー

2021/01/31 07:25 編集

コマンドプロンプトでnumpyをインストールしようとしたところ、 C:\Users\user\Desktop\DeepLearningPython35-master>py -m pip install numpy Collecting numpy Downloading numpy-1.20.0-cp39-cp39-win_amd64.whl (13.7 MB) |████████████████████████████████| 13.7 MB 117 kB/s Installing collected packages: numpy WARNING: The script f2py.exe is installed in 'C:\Users\user\AppData\Local\Programs\Python\Python39\Scripts' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed numpy-1.20.0 WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available. You should consider upgrading via the 'C:\Users\user\AppData\Local\Programs\Python\Python39\python.exe -m pip install --upgrade pip' command. あ、でもこれでいいみたいですね。
TakaiY

2021/01/31 07:38

f2py.exeが必要なら、表示されているパスをPATHについかすればいいかと。
退会済みユーザー

退会済みユーザー

2021/01/31 07:46

なんか https://gammasoft.jp/blog/install-numpy-pandas-matplotlib-by-pip/ ここを見ると、 上記のように「WARNING: The script f2py.exe is installed in 〜」と警告が表示されますが、何もしないで大丈夫です。 f2py.exeとは、FORTRANのコードをPythonで使えるようにするプログラムです。通常使うことはありませんが、警告内容のようにPATHを通さなくてもpy -m numpy.f2pyで呼び出せます。 とあるので、気にしなくていいんですかね、しかし、 pythonで同様に >>> training_data, validation_data, test_data = \ と入力しても、 ... mnist_loader.load_data_wrapper() Traceback (most recent call last): File "<stdin>", line 2, in <module> NameError: name 'mnist_loader' is not defined となりますね。
TakaiY

2021/01/31 08:00

mnist_loader をインポートしましたか?
退会済みユーザー

退会済みユーザー

2021/01/31 08:19

これ連続して書かないとだめなんですかね、もう1度インポートすると、できたみたいです。 >>> mnist_loader.load_data_wrapper() (<zip object at 0x00000239E7F68AC0>, <zip object at 0x00000239E7F80A80>, <zip object at 0x00000239E7F80800>) >>> しかし、これが何を意味するんでしょうか・・?
TakaiY

2021/01/31 09:43

それはそのサイトの説明のとおりですよ。
退会済みユーザー

退会済みユーザー

2021/01/31 10:31

一応成功してるのですかね。
TakaiY

2021/01/31 10:38

はい。それは成功してますよ。
退会済みユーザー

退会済みユーザー

2021/01/31 11:26

自分は数字の書いた画像から数字を認識させたりさせたいのですが、 それはどうやるんでしょうか、 この成功した結果からは何が分かったのかもよく分かってないのですが(画像認識関係の事ができると思っていたが)
TakaiY

2021/01/31 12:33

はい。そのとおり。 最初から最後までちゃんと読んで、すべて理解しないとわからないでしょう。 ちなみに、mnist_loader.load_data_wrapper() は、保存されているデータを読みこんだだけで、何もしてません。
退会済みユーザー

退会済みユーザー

2021/02/02 11:15

https://nnadl-ja.github.io/nnadl_site_ja/chap1.html この、日本語で書かれたページを読んで、上から下まで実行する事で、数字認識はできるようになりませんかね? 一応mnist_loader.load_data_wrapperは実行できたので、同じように進めていけばできるようになるんじゃないかと考えているのですが・・・。
TakaiY

2021/02/02 11:18

僕は最後まで読んでいないのでわかりません。 ただ、機会学習についてのある程度の知識と、実践経験が得られそうに思うので、目的のことができなかったとしても、有用だと思いますよ。
退会済みユーザー

退会済みユーザー

2021/02/02 11:21

早速返信ありがとうございます、とりあえず全体をつかみたい、具体的には、 どの部分が画像認識の処理部分にあたり、どのようにして認識をしているのか(画像の読み込み方法から、まず分からない)、 で、実際に画像を使って、近い事ができれば更にやる気も増すのですが。
guest

回答1

0

ベストアンサー

ダウンロードしたデータの中に「mnist_loader.py」というファイルがあるはずです。
「import mnist_loader」のmnist_loaderはそのファイルを指していると思われます。

投稿2021/01/29 07:16

meg_

総合スコア10736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/01/29 10:11

userディレクトリーの、neural-networks-and-deep-learningディレクトリーのsrcディレクトリーに、 mnist_loader.pyがありました。 おそらく、適切なディレクトリーにpyファイルがないためimportできないのではないかと思うのですが、 一体どのディレクトリーに、pyファイルを移動させれば良いのでしょうか? というか、neural-networks-and-deep-learningディレクトリーごと、そのどこか適切なディレクトリーに移動させる必要があるんでしょうか?
退会済みユーザー

退会済みユーザー

2021/01/30 07:20

ざっとしか読んでないのですが、 これ単体だと動かないんですかね?動かす方法をとりあえず知りたいのですが。 ああそうか、今のディレクトリに移動させて使うのか。。
退会済みユーザー

退会済みユーザー

2021/01/30 10:42 編集

ひとまずimportについては、いわれた通りにやって、 mnist_loader.pyのimport部分をimport _pickleに変え、 ディレクトリーをsrcに移動させ、 training_data, validation_data, test_data = \ を実行すると以下のようにエラーが出ました。 File "<stdin>", line 2 training_data, validation_data, test_data = \
meg_

2021/01/30 12:43

> mnist_loader.pyのimport部分をimport _pickleに変え、 これはどういう意図で改変されたのでしょうか? サイト通りに動作しないのであれば、実行環境が合わないのかもしれません。githumのREADME.mdを確認された方が良いかと思います。
退会済みユーザー

退会済みユーザー

2021/01/30 13:14 編集

いえ、importなんちゃらpicleの部分を、_pickleに変えたのです。 改行せずに、2行連続で打ってエンターを押すと・・・ ... training_data, validation_data, test_data = \ ... mnist_loader.load_data_wrapper() Traceback (most recent call last): File "<stdin>", line 3, in <module> File "C:\Users\user\Desktop\cv\mnist_loader.py", line 68, in load_data_wrapper tr_d, va_d, te_d = load_data() File "C:\Users\user\Desktop\cv\mnist_loader.py", line 43, in load_data training_data, validation_data, test_data = cPickle.load(f) NameError: name 'cPickle' is not defined というエラーが出ました。pickleをまた、_pickleに書き換えないといけないんでしょうか、メモ帳で開いて。 なんか、asを使う方法も載っていましたがうまくいかなかったので。 問題はpickleだけでしょうか、どのファイルのを変更すれば良いんでしょうか。
meg_

2021/01/30 13:16

> いえ、importなんちゃらpicleの部分を、_pickleに変えたのです。 githubからダウンロードしたコードに不備があったという意味でしょうか?
meg_

2021/01/30 13:17

質問へのコメント欄でjbpb0さんが指摘されていることはOKでしょうか?
退会済みユーザー

退会済みユーザー

2021/01/30 13:54 編集

まずpickleのエラー回避方法について https://testpy.hatenablog.com/entry/2017/03/17/000626 ここを参考にしました、ここにはasを使う方法が載っていますが、うまくいかなかったようなので、 cPicleの部分を_pickleに変えると、うまく行きました。 jbpさんの、 それはPython 2.x用だそうです https://github.com/mnielsen/neural-networks-and-deep-learning というコメントでしょうか? 自分はpython 2.xでなく3.9を使っていますが、これでもできるのではないかと期待してやっている限りです。 しかしこれはminist_loader.pyのimport部分1か所のみに行った変更であるので、 他にも同様の変更が必要そうです、しかしエラーの原因がそれだけとは限りません。
meg_

2021/01/30 14:12

>> サイト通りに動作しないのであれば、実行環境が合わないのかもしれません。githumのREADME.mdを確認された方が良いかと思います。 私の上記コメントは読まれましたでしょうか。 https://github.com/mnielsen/neural-networks-and-deep-learningのREADME.mdには「The code is written for Python 2.6 or 2.7. Michal Daniel Dobrzanski has a repository for Python 3 here. I will not be updating the current repository for Python 3 compatibility.」と明記されています。 > 自分はpython 2.xでなく3.9を使っていますが、これでもできるのではないかと期待してやっている限りです。 質問者さんが現在使用しているコードはPython 2.6 or 2.7用なのでエラーが出て動作しなくても仕方がないでしょう。Python3.5.2用のコードが公開されていますのでそちらを3.5.2で使用するのが良いかと思います。
退会済みユーザー

退会済みユーザー

2021/01/30 17:05 編集

Python3.5.2で、3.5.2のコードをDLして同じディレクトリーで実行してみました。 >>> mnist_loader.load_data_wrapper() と入力すると、やはりここで詰まってしまいます。 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'mnist_loader' is not defined mnist_loader.pyの中身、初めの方は、 # %load mnist_loader.py """ mnist_loader ~~~~~~~~~~~~ A library to load the MNIST image data. For details of the data structures that are returned, see the doc strings for ``load_data`` and ``load_data_wrapper``. In practice, ``load_data_wrapper`` is the function usually called by our neural network code. となっています。この初めの方のmnist_loaderが、なんだそれという事になってるのですかね。
meg_

2021/01/31 04:53

> Python3.5.2で、3.5.2のコードをDLして同じディレクトリーで実行してみました。 ”何を”実行されたのでしょうか?そこの説明が抜けているので状況が分かりません。 同じくREADME.mdは読まれましたか? https://github.com/MichalDanielDobrzanski/DeepLearningPython35のREADME.mdには「Just type at shell: python3.5 test.py In test.py there are examples of networks configurations with proper comments. I did that to relate with particular chapters from the book.」と書いてあります。 試しに実行するならtest.pyを動かすのが良いのではないでしょうか? ご自身で改造される際にもこちらのコードが参考になるのではないでしょうか? それでも上手くいかない場合は、https://github.com/MichalDanielDobrzanski/DeepLearningPython35/issues を読まれると良いかもしれません。
退会済みユーザー

退会済みユーザー

2021/01/31 06:03 編集

具体的に書くと、 Python3.5で、3.5.2用のファイル一式 https://github.com/MichalDanielDobrzanski/DeepLearningPython35 をDLして、同じディレクトリーでpythonで、 >>> import mnist_loader >>> training_data, validation_data, test_data = \ ... mnist_loader.load_data_wrapper() を実行してみました。 mnist_loader.load_data_wrapper()を入力し、エンターを押した所で、以下のエラーです。 Traceback (most recent call last): File "<stdin>", line 3, in <module> NameError: name 'mnist_loader' is not defined ちなみに、mnist_loader.pyの中身、初めの方は、 # %load mnist_loader.py """ mnist_loader ~~~~~~~~~~~~ A library to load the MNIST image data. For details of the data structures that are returned, see the doc strings for ``load_data`` and ``load_data_wrapper``. In practice, ``load_data_wrapper`` is the function usually called by our neural network code. となっています。この初めの方のmnist_loaderが、なんだそれという事になってるのですかね。 ちなみに、test.pyを実行しようとして、python test.pyと打つと、以下のエラーになります。 SyntaxError: invalid syntax >>> python test.py File "<stdin>", line 1 python test.py ちなみにpython3.5.2はここ https://pythonlinks.python.jp/ja/index.html からDLしました、起動ファイル名はPython 3.5 (64-bit)となってますがこれは3.5.2と同じなんですかね。
退会済みユーザー

退会済みユーザー

2021/02/02 11:21 編集

一応mnist_loader.load_data_wrapper(については実行できたのですが、 一山越えただけで、 この日本語ページを上から下まで、実行できるようになっても、数字認識はできるようにならないのでしょうか? とりあえず全体をつかみたい、具体的には、 どの部分が画像認識の処理部分にあたり、どのようにして認識をしているのか(画像の読み込み方法から、まず分からない)、 で、実際に画像を使って、近い事ができれば更にやる気も増すのですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問