質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.49%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Q&A

解決済

1回答

1879閲覧

NO module named keras.models

inakazu929

総合スコア1

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

0グッド

0クリップ

投稿2021/04/07 10:48

編集2021/04/08 09:38

実現したいこと

conda createにて仮想環境を作り、activateした後、kerasをinstallしたのですが、
コードを実行しようとすると「ImportError: No module named keras.models」
とエラーが出てしまいます。

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

ImportError: No module named keras.models

Pyhon

ソースコード
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
import numpy as np
from keras.utils import np_utils
import keras

classes = ['monkey','boar','crow']
num_classes = len(classes)
image_size = 50

def main():
X_train, X_test, y_train, y_test = np.load('./animal_aug.npy',allow_pickle=True)
X_train = X_train.astype('float') / 256
X_test = X_test.astype('float') / 256
y_train = np_utils.to_categorical(y_train, num_classes)
y_test = np_utils.to_categorical(y_test, num_classes)

model = model_train(X_train, y_train) model_predictS(model, X_test, y_test)

def model_train(X,y):
model = Sequential()
model.add(Conv2D(32,(3,3), padding='same',input_shape=X.shape[1:]))
model.add(Activation('relu'))
model.add(Conv2D(32,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))

model.add(Conv2D(64,(3,3),padding='same')) model.add(Activation('relu')) model.add(Conv2D(64,(3,3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(512)) model.add(Dropout(0.5)) model.add(Dense(3)) model.add(Activation('softmax')) opt = keras.optimizers.RMSprop(lr=0.0001) model.compile(loss='categorical_crossentropy' , optimizer=opt,metrics=['accuracy']) model.fit(X,y,batch_size=32,epochs=11) model.save('./animal_cnn_aug.h5') return model

def model_eval(model, X, y):
scores = model.evaluate(X, y, verbose=1)
print('Test Loss', scores[0])
print('Test Accurity', scores[1])

def model_predict(model, X, y):
result = model.predict(X)
for i in range(X.shape[0]):
print('推定値: ', result[i].argmax())
print('正解値: ', y[i].argmax())

if name == "main":
main()

試したこと

pipにてインストール
condaにて再インストール
tensorflow.kerasに修正し実行。

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

python=3.7
実行したkeras=2.3.1
MACos

kerasのpathを確認したところ、python3.9にインストールされておりました。
仮想環境は3.7ですのでこちらの相違がエラーに繋がっているのでしょうか。
その場合、どのように対処すれば良いかご教授いただきたいです。

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

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

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

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

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

jbpb0

2021/04/07 12:05

自分で keras.py というファイル作ってませんか? あるいは、 keras というディレクトリ作ってませんか?
inakazu929

2021/04/08 07:26

ご回答いただき誠にありがとうございます。 ちなみに、ファイル名の検索はlocate keras.pyで合ってますでしょうか。 初心的な質問で申し訳ありません。 こちらで合っていましたら恐らく作られてないと考えます。
jbpb0

2021/04/08 10:58

コードを全部「tensorflow.keras」しか使わないように書き換えてもエラーが出るなら、私が指摘したようなことが原因では無いですね
inakazu929

2021/04/08 11:14

一つの可能性としてご指摘いただきありがとうございました。 選択肢が一つ減ったので解決に前進したと思います。
guest

回答1

0

ベストアンサー

kerasからのインポートでエラーになるには、tensorflow.kerasを使う方が良いと書かれていますが、これを使いたくない理由はあるのでしょうか。、

投稿2021/04/07 11:52

ppaul

総合スコア24666

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

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

inakazu929

2021/04/08 07:27

ご回答いただき誠にありがとうございます。 import tensorflow.keras.models のような形で合ってますでしょうか。 こちらで合っておりましたら、実施しましたが改善は致しませんでした。
inakazu929

2021/04/08 09:23

ご教授いただきありがとうございます。 from tensorflow import keras from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D from tensorflow.keras.layers import Activation, Dropout, Flatten, Dense from tensorflow.keras.utils import np_utils という形で実行しましたが、エラーは解消されませんでした。
jbpb0

2021/04/08 10:56

コードの先頭に import tensorflow と書いたら、その行は実行できますか?
inakazu929

2021/04/08 11:12

import tensorflow も入力してみましたが、tensorflowもno moduleとなってしまいます。 conda list を見ると確実にインストールされているのですが、、、
jbpb0

2021/04/08 13:56

pythonで import tensorflow がうまくいかない状態で、 下記のpythonコードを実行してください import sys print(sys.executable) 上記の実行で、お使いのpythonのパスが表示されますので、 conda list を実行できる状態で、下記を実行してみてください 表示されたpythonのパス -m pip install --upgrade tensorflow そうすれば、tensorflowがインストールされて、importできるようになると思います
inakazu929

2021/04/09 20:55

ご教授ありがとうございます。 実行してみましたが、エラーは解消されませんでした。 インストールは実行されていたのですが。
jbpb0

2021/04/09 22:40 編集

pythonで import tensorflow がうまくいかない状態で、 下記のpythonコードを実行してください import sys import pprint pprint.pprint(sys.path) たくさんパスが表示されますが、その中に「site-packages」で終わるものがあるので、そのパスを調べてください 「site-packages」ディレクトリにインストールしたモジュール名のディレクトリがあるはずですが、そこに名前が「tensorflow」で始まるディレクトリはありますか? もしあれば、ディレクトリ名を教えてください 複数あれば全部
inakazu929

2021/04/13 05:48

ご回答いただき誠にありがとうございます。 一度、Anacondaの再インストール、複数バージョンが存在していたpythonの整理を行ったところ、問題は解消されました。 恐らく、pythonのバージョンが多すぎてインストール先のデフォルトがおかしくなっていたものと考えられます。 お手数おかけしました。ありがとうございました。
jbpb0

2021/04/13 06:09

> 複数バージョンが存在していたpythonの整理を行ったところ はい、要らないのがあれば、そうするのがいいです 複数のPythonをインストールするのは、何かそうしなければならない事情があって、分かってて使い分けるのであればいいのですが、そうでなければトラブルの原因になるので、できるだけ止めた方がいいです
inakazu929

2021/04/13 11:01

ご教授頂き誠に有り難うございました。 現在様々なオンライン講義を受けており多様な環境の構築を行う中で、自身で管理が出来ていなかったと反省しております。その辺りもしっかり学習してまいります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問