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

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

詳細はこちら
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

2回答

3544閲覧

tensorflowを使用して学習を実行したら『ModuleNotFoundError: No module named 'tensorflow.models'』とエラーが表示された

sho12

総合スコア5

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2021/01/22 03:11

編集2021/01/22 16:19

前提・実現したいこと

Python3.6.5とtensorflow1.14.0を使用して学習させようとプログラムを実行したら以下のようになりました。初心者なので解決方がわかりません。

発生している問題・エラーメッセージ

C:\Users\○○\Documents>Python chatbot.py C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) C:\Users\○○\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) Traceback (most recent call last): File "chatbot.py", line 18, in <module> import seq2seq_model as seq2seq_model File "C:\Users\○○\Documents\seq2seq_model.py", line 23, in <module> from tensorflow.models.rnn import rnn_cell ModuleNotFoundError: No module named 'tensorflow.models'

該当のソースコード[seq2seq_model]

https://oimeg.blogspot.com/2016/11/tensorflow_37.html
https://github.com/petewarden/tensorflow_makefile/blob/master/tensorflow/models/rnn/translate/seq2seq_model.py 参照

試したこと

ツールのバージョンアップ等試しましたがダメでした

追記:numpyを1.16.4に下げたら『~np_resource = np.dtype([("resource", np.ubyte, 1)])』までの表示は出なくなりましたが、『ModuleNotFoundError: No module named 'tensorflow.models'』は変わらずでした

補足情報(FW/ツールのバージョンなど)

言語:Python3.6.5
ツール:
absl-py 0.11.0
astor 0.8.1
cached-property 1.5.2
gast 0.4.0
google-pasta 0.2.0
grpcio 1.34.1
h5py 3.1.0
importlib-metadata 3.4.0
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.2
Markdown 3.3.3
mock 4.0.3
numpy 1.16.4
Pillow 8.1.0
pip 20.3.3
protobuf 3.14.0
setuptools 51.3.3
six 1.15.0
tensorboard 1.14.0
tensorflow 1.14.0
tensorflow-estimator 1.14.0
termcolor 1.1.0
typing-extensions 3.7.4.3
Werkzeug 1.0.1
wheel 0.36.2
wrapt 1.12.1
zipp 3.4.0

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

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

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

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

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

sho12

2021/01/22 07:16

これは、その別の場所に指定とかをしないといけないのでしょうか
jbpb0

2021/01/22 07:48

それ専用のgithubのrepositoryを作ったから、そこから自分で落として、ってことです https://github.com/tensorflow/models の左上の「master」って書いてるところをクリックして「tags」に変えて、質問者さんが使ってるTFのバージョンに合わせて(ピッタリ同じのが無ければ、近いのに合わせる)、右上の「Code」をクリックしてZIPで自分のPCに落として解凍して、その中を探す もちろん、Pythonコード内でimportしてるところも、PCに落としたのを参照するように書き換えないとダメです あと、 https://fight-tsk.blogspot.com/2017/02/tensorflow-10.html とかを見ると、importの行を修正するだけでいけるように書かれてますので、それを先に試してみるといいかも ただし、書かれた時期が古いので、質問者さんがお使いのTFのバージョンでもそれでいけるかは、分かりません
sho12

2021/01/22 08:24

上にURLから1.12.0のZipをダウンロード・解凍しました。(この前にtensorflowを1.12.0に下げてimportで動作確認しました) この解凍されたものの中からどの名前のファイルを探せばいいのでしょうか。またそれをどこにコピーすればよいのでしょうか。
jbpb0

2021/01/22 08:34

> tensorflowを1.12.0に下げてimportで動作確認しました TFのバージョンを下げてエラーを回避するのなら、tensorflow.modelsが無くなったのは1.0.0だから、それよりも古いのにしないとダメです
sho12

2021/01/22 08:43

ERROR: Could not find a version that satisfies the requirement tensorflow-1.0.0 ERROR: No matching distribution found for tensorflow-1.0.0 と表示されてインストールできませんでした
jbpb0

2021/01/22 08:48

> この解凍されたものの中からどの名前のファイルを探せばいいのでしょうか たとえば seq2seq_model.py なら、 from tensorflow.models.rnn import rnn_cell がエラーを出しているので、rnnが付くフォルダやファイルが無いか探して、その中に「rnn_cell」が(または同等なものが)無いか探します そういうことを、エラーが出ている各行で、全部やります ただし、必要なものが全部落としたZIPの中にあるかは、分かりません そこに入っているものもあれば、同等な機能がTFの別のところにあるから今後はそれを使ってね、ってなってるかもしれません たぶん全部どこかには(名前は変わってるかもしれないけど機能としては)あると思うので、それらを探して、組み合わせて、うまく動くようにコードを書き直すわけです、古いコードを頑張って動かすには そんなことやってられないよ、って思ったら、TFのバージョンを、そのコードが動いていたはずの古いバージョンまで戻すか、あるいは参考にしてるコードはあきらめて、同等なことをやってるもっと新しいのを探すか、します > どこにコピーすればよいのでしょうか。 たとえば、ZIPを解凍した中に「rnn」というフォルダがあって、その中に必用な機能が全部入ってた、とします その場合は、「rnn」を必要とするコードが置いてあるフォルダに「rnn」フォルダをコピーして、そこからインポートするようにimport文を書き換えます
jbpb0

2021/01/22 08:59

> ERROR: Could not find a version that satisfies the requirement tensorflow-1.0.0 > ERROR: No matching distribution found for tensorflow-1.0.0 「1.0.0よりも古いの」だから、1.0.0ではダメです 0.x.xの最終の0.12.1のpip用ファイル https://pypi.org/project/tensorflow/0.12.1/#files を見ると、Windows用(ファイル名にwin_amd64が付いてるもの)はPython 3.5用しかないです ファイル名の「cp数字」の数字がPythonのバージョンです cp35は、Python 3.5用
jbpb0

2021/01/22 09:08

Python 3.5を入れて、TF 0.12.1を入れても、それで全て解決するかどうかは、やってみないと分かりません 質問者さんが参考にしてるコードで必要な機能が全てTF 0.12.1に入っているかは、分からないからです もし、参考にしてるコードが書かれた頃のTFのバージョンが0.12.1よりもずっと古ければ、それと0.12.1の間でTFの仕様変更があり、いろいろ書き換えないと動かないかもしれません その場合も、エラーメッセージを見て、ググったりして対策探してやってみる、ということを繰り返すしかありません
sho12

2021/01/22 11:52 編集

つまりtensorflow1.12.0のバージョンではどうあがいてもseq2seq_model.pyは使えないということですか? あと結局1.0.0と同じ方法で0.12.0をインストールできず、よりバージョンの低いtensorflowのインストール方法がわからないのですが、https://pypi.org/project/tensorflow/0.12.1/#filesを参照すればいいのでしょうか。でもファイルをダウンロードしましたが、ダウンロードされたWHL ファイルがよくわかりません
sho12

2021/01/22 11:52

本当に自分が主に学習能力の面で至らない点が多いことは重々承知なのですが、どうか教えて下さい
jbpb0

2021/01/22 12:49

> 0.12.0をインストールできず、よりバージョンの低いtensorflowのインストール方法がわからない ここの上に書いたように、TF 0.xのpipインストール用のファイルはPython 3.5用のしか用意されてないので、今お使いの > 言語:Python3.6.5 にはインストールできません たとえwhlをダウンロードしてもムリです Python 3.5をインストールしないと、TF 0.12はインストールできません
sho12

2021/01/22 13:00 編集

Python 3.5.0のみでしょうか。 3.5.1~4でも問題ないでしょうか。
jbpb0

2021/01/22 13:06

> tensorflow1.12.0のバージョンではどうあがいてもseq2seq_model.pyは使えないということですか? そんなことはないです seq2seq_model.pyが必要としてて、当時のTFにあってTF 1.xでは無くなっている機能を、何とかして全部集められて、それを使えるようにできれば、使えるはずです ・ダウンロードしたZIPから探す ・エラーメッセージをググって対策を探す 等して
jbpb0

2021/01/22 13:13

3.5.xのxは何でも大丈夫なはずです ただし、3.5にバージョンを下げたら、逆にそれで動かなくなるものがあるかもしれません
sho12

2021/01/22 14:19 編集

Python3.5.6でtensorflow0.12.1のインストールが出来たのですが、listをした際 DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. numpy (1.18.5) pip (9.0.1) protobuf (3.14.0) setuptools (28.8.0) six (1.15.0) tensorflow (0.12.1) wheel (0.36.2) のようにlistの上記に表示されましたがこれは何か対処しないといけないものなのでしょうか。 また、この状態でtensorflowをimportした所、 (省略)ureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) と表示されました。tensorflow1.12.0だった時はnumpyのバージョンを特定のものまで下げたら解決したので、恐らくnumpyとの合わせの問題だと思うのですが、対応のバージョンがわかりません。(追記:numpyを1.14.0まで下げたら一応importできました。)
jbpb0

2021/01/22 14:28 編集

どちらも、将来のバージョンでは仕様が変わるから準備しといてね、的な内容なので、今回インストールしたバージョンの組み合わせを使う場合は、何もしなくても大丈夫です メッセージ内にfutureって書かれてるのは、たいていそれです
sho12

2021/01/22 14:32 編集

因みに学習を実行したら File "chatbot.py", line 53, in <module> import seq2seq_model as seq2seq_model File "C:\Users\○○\Documents\seq2seq_model.py", line 23, in <module> from tensorflow.models.rnn import rnn_cell File "C:\Users\○○\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\models\rnn\rnn_cell.py", line 21, in <module> raise ImportError("This module is deprecated. Use tf.nn.rnn_cell instead.") ImportError: This module is deprecated. Use tf.nn.rnn_cell instead. と表示されました。tensorflowのバージョンを少しずつ下げながら実行を試すのを繰り返したほうがいいのでしょうか。
sho12

2021/01/22 14:44

存在するバージョンがわからなかったので、現段階でtensorflow0.11.0, 0.10.0, 0.9.0のインストールを試したら No matching distribution found for tensorflow==0.x.0 と表示されました
sho12

2021/01/22 15:21 編集

seq2seq_model.py 内の 『from tensorflow.models.rnn.translate import data_utils』 という部分の『rnn.』の前にtf.nn.を付けるという認識で大丈夫でしょうか 念のためたずねるのですが single_cell = tf.nn.rnn_cell.GRUCell(size) if use_lstm: single_cell = tf.nn.rnn_cell.BasicLSTMCell(size) cell = single_cell if num_layers > 1: cell = tf.nn.rnn_cell.MultiRNNCell([single_cell] * num_layers) の部分にtf.nn.はいらないと認識しているのですが間違いないでしょうか
jbpb0

2021/01/22 15:46

> 『from tensorflow.models.rnn.translate import data_utils』 という部分 > ...の部分にtf.nn.はいらない どちらも、その行でエラーが出てないなら、触る必要はありません
sho12

2021/01/22 16:09

>from tensorflow.models.rnn import rnn_cell すみません。丸々コピペしたつもりがどういうわけか入っていたようです。 >seq2seq_model.pyというファイルが二つあるのでは無いですよね? 同じドキュメントにはありませんが、以前使用していたPython3.6が入っていたファイルに残っていました。(確認次第そのファイルごと消しました)
sho12

2021/01/22 16:25 編集

あとこの際洗いざらい言います。やろうとしている実験内容がコレ↓ https://oimeg.blogspot.com/2016/11/tensorflow_15.html なんですけど、seq2seq_model.pyと一緒に使用するファイル等の内容もリンク先にある(3),(4)のページに載っています。
sho12

2021/01/22 16:32 編集

因みにseq2seq_model.pyをコピペし直して同一ファイルも消した上でリンク先の学習を実行使用とPython chatbot.pyをしたら C:\Users\○○\Documents>Python chatbot.py Traceback (most recent call last): File "chatbot.py", line 54, in <module> from janome.tokenizer import Tokenizer File "C:\Users\○○\AppData\Local\Programs\Python\Python35\lib\site-packages\janome\tokenizer.py", line 140 return f'{self.surface}\t' \             ^ SyntaxError: invalid syntax となりました。 janomeのバージョンは0.4.1です。
jbpb0

2021/01/22 22:18

> seq2seq_model.pyをコピペし直して が、Webブラウザからのコピペという意味なら、ZIPで落として解凍して、必要なファイルをコピーして使う方がいいですよ 部分的にちょっと引用するのではなく、ファイル全体をほぼ使う場合は
jbpb0

2021/01/22 23:35 編集

ModuleNotFoundError: No module named 'tensorflow.models' は出なくなって、次に進んで別の(janomeの)エラーが出た、ということですね? 【追記】そうでしたら、元々の質問は解決したので、今後何か問題が生じたら、別の質問にしてください
jbpb0

2021/01/22 22:58

> janomeのバージョンは0.4.1 0.4はPython 3.6以上が必要 0.3.10を入れてください
jbpb0

2021/01/22 23:30

Python 3.5だと、他にも動かないものあると思います その際は、下記のようにして調べてください janomeを例に書きます PCのWebブラウザで https://pypi.org/ を開いて、janomeを検索 ずらーーーっと表示される中から、「Janome 0.4.1」をクリック 左下の「Programming Language」を見ると、Python 3.5は書かれてないのでダメ 左上の「Release history」をクリック ずらーーーっと表示される中から、過去バージョンをどれか選んでクリック 左下の「Programming Language」にPython 3.5が含まれてるバージョンを見つける
sho12

2021/01/23 02:39 編集

Janomeの0.3.1をインストールしようとしたら C:\Users\○○>pip install Janome==0.3.1 Collecting Janome==0.3.1 Using cached https://files.pythonhosted.org/packages/3c/3f/035da75079b423731e32171357cbb0d55b3705e57217baa1e903892c8061/Janome-0.3.1.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\○○\AppData\Local\Temp\pip-build-kldxlrsc\Janome\setup.py", line 22, in <module> long_description = f.read() UnicodeDecodeError: 'cp932' codec can't decode byte 0x81 in position 853: illegal multibyte sequence ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in C:\Users\○○\AppData\Local\Temp\pip-build-kldxlrsc\Janome\ と表示されました
sho12

2021/01/23 03:09 編集

>元々の質問は解決したので、今後何か問題が生じたら、別の質問にしてください 言われた通りこの投稿を解決済みにし、上記に記載したJanomeの0.3.1をインストール時エラーへの質問を投稿しました。 https://teratail.com/questions/317881
sho12

2021/01/23 03:09

どうしてもこの学習を期間内に行いたいため、どうかよろしくお願いいたします
jbpb0

2021/01/23 03:23

0.3.10です 0.3.1ではなく
sho12

2021/01/23 03:45 編集

インストールできました。 しかし学習を実行したところ、別のエラーが発生しました。内容は以下のリンク先に投稿しました。 https://teratail.com/questions/317894?modal=q-comp どうかよろしくお願いいたします。
sho12

2021/01/23 05:30

上記のリンク先の投稿内容に、使用するファイルの状態も記載致しました。
guest

回答2

0

質問が書いてありませんが
https://github.com/petewarden/tensorflow_makefile/blob/49c08e4d4ff3b6e7d99374dc2fbf8b358150ef9c/tensorflow/core/public/version.h#L21
tensotflow0.8からfolkしたらしいソースだということは指摘しておきます。

投稿2021/01/22 03:23

quickquip

総合スコア11231

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

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

0

自己解決

Pythonを3.5.4、tensorflowを0.12.1にしたらとりあえず質問内容のエラーは解決しました。

投稿2021/01/23 03:04

編集2021/01/23 03:26
sho12

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問