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

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

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

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

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

264閲覧

ImportError: cannot import name 'layer_utils' from 'keras.utils' というエラーが出ました

marus2024

総合スコア0

Keras

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

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2024/03/08 01:46

編集2024/03/08 02:23

実現したいこと

GoogleDriveにある画像から顔認識をしたいと考えています。

前提

GoogleColabで顔認証をさせるためのコードをチャットGPTから書かせてそれを用いることにしました。
kerasを用いたコードを実装中に以下のエラーメッセージが発生しました。

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

--------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-1-1fd1e5f6721a> in <cell line: 10>() 8 import numpy as np 9 import keras ---> 10 from keras_vggface.vggface import VGGFace 11 12 #GoogleDriveの参考 2 frames /usr/local/lib/python3.10/dist-packages/keras_vggface/__init__.py in <module> ----> 1 from keras_vggface.vggface import VGGFace 2 from keras_vggface.version import __version__ /usr/local/lib/python3.10/dist-packages/keras_vggface/vggface.py in <module> 7 ''' 8 from __future__ import print_function ----> 9 from keras_vggface.models import RESNET50, VGG16, SENET50 10 11 /usr/local/lib/python3.10/dist-packages/keras_vggface/models.py in <module> 14 AveragePooling2D, Reshape, Permute, multiply 15 from keras_applications.imagenet_utils import _obtain_input_shape ---> 16 from keras.utils import layer_utils 17 from keras.utils.data_utils import get_file 18 from keras import backend as K ImportError: cannot import name 'layer_utils' from 'keras.utils' (/usr/local/lib/python3.10/dist-packages/keras/utils/__init__.py)
ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-09a6fed00bef> in <cell line: 12>() 10 import numpy as np 11 import keras ---> 12 from keras_vggface.vggface import VGGFace 13 14 #GoogleDriveの参考 2 frames /usr/local/lib/python3.10/dist-packages/keras_vggface/models.py in <module> 18 from keras import backend as K 19 from keras_vggface import utils ---> 20 from keras.engine.topology import get_source_inputs 21 import warnings 22 from keras.models import Model ModuleNotFoundError: No module named 'keras.engine.topology'

該当のソースコード

GoogleColab上でpythonを用いて作業しています。

1import os 2import cv2 3import numpy as np 4import keras 5from keras_vggface.vggface import VGGFace 6 7#GoogleDriveの参考 8from google.colab import drive 9drive.mount('/content/drive/') 10 11# 顔写真のファイルパスを指定 12file_path = "/content/drive/MyDrive/okakou/face/01/" 13 14# ファイルパスから画像データを読み込み 15image = cv2.imread(file_path) 16 17# 画像をRGBに変換 18#image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 19 20# 顔検出のためのカスケード分類器を読み込み 21face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml") 22 23# 画像から顔を検出 24faces = face_cascade.detectMultiScale(image, 1.3, 5) 25 26# 顔の分類のためのVGGFaceモデルを読み込み 27model = VGGFace(model="resnet50") 28 29# 検出された顔に対してループ 30for (x, y, w, h) in faces: 31 # 顔の領域を切り出し 32 face = image[y:y+h, x:x+w] 33 # 顔のサイズを224x224にリサイズ 34 face = cv2.resize(face, (224, 224)) 35 # 顔のデータを4次元配列に変換 36 face = np.expand_dims(face, axis=0) 37 # 顔のデータを前処理 38 face = preprocess_input(face, version=2) 39 # 顔の分類を予測 40 pred = model.predict(face) 41 # 予測結果をデコード 42 result = decode_predictions(pred)[0][0] 43 # 予測結果を表示 44 print(f"Detected face at ({x}, {y}, {w}, {h})") 45 print(f"Name: {result[0]}") 46 print(f"Score: {result[1]}")

試したこと

コメントをいただき、kerasのダウングレードを行いましたが、上記のエラーになりました。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

melian

2024/03/08 02:02

2023/7/27 に issue として報告されています。 Issue ImportError: cannot import name 'layer_utils' from 'keras.utils' · Issue #97 · rcmalli/keras-vggface · GitHub https://github.com/rcmalli/keras-vggface/issues/97 原因としては Keras package との不整合の様で、Keras のバージョンを下げることで解消するとのことです。 > I solved this issue by reverting to keras version 2.12. The issue arose for me with tensorflow version 2.13.0 and keras version 2.13.1 > > My fix: > pip uninstall keras > pip install keras==2.12 > > now it imports layer_utils as well.
marus2024

2024/03/08 02:23

コメントありがとうございます。ダウングレードを試しましたがまだ解決できていません。 試した結果を質問に追記しました。
melian

2024/03/08 02:38

そのエラーも issue として上がっていて、 ModuleNotFoundError: No module named 'keras.engine.topology' · Issue #73 · rcmalli/keras-vggface · GitHub https://github.com/rcmalli/keras-vggface/issues/73 PR がマージされているのですが、PyPI のリポジトリには反映されていない様です。なので、GitHub のリポジトリからインストールするとよいかと思います。 pip3 uninstall keras-vggface pip3 install --user git+https://github.com/rcmalli/keras-vggface.git
marus2024

2024/03/08 03:17

コメントありがとうございます。GitHubについて存じておらず、調べましたがよく理解できませんでした。 参考サイト等があれば教えていただけますでしょうか? いただいたコードをGoogleColab上で以下のように書き換えて使用したのですが、うまくいきませんでした。 !pip uninstall keras-vggface !pip install --user git+https://github.com/rcmalli/keras-vggface.git
melian

2024/03/08 03:47

こちらでもGoogleColab上で実行してみました。以下を実行してからコードを実行してみてください。 !pip install keras==2.12 !pip install Keras-Applications !pip install git+https://github.com/rcmalli/keras-vggface.git
marus2024

2024/03/08 04:05

コメントありがとうございます。 いただいたコメントを記入したうえ以下のように実行したのですが、from keras 以下の部分でやはりエラーが出ました。 インストールに問題があるのでしょうか。 !pip install keras==2.12 !pip install Keras-Applications !pip install git+https://github.com/rcmalli/keras-vggface.git import os import cv2 import numpy as np import keras from keras_vggface.vggface import VGGFace 以下エラー文 ModuleNotFoundError Traceback (most recent call last) <ipython-input-3-0d43efdfc483> in <cell line: 15>() 13 import numpy as np 14 import keras ---> 15 from keras_vggface.vggface import VGGFace 16 17 #GoogleDriveの参考 ModuleNotFoundError: No module named 'keras_vggface'
melian

2024/03/08 04:13

セッションデータが残ったままになっているかもしれませんので、新規にノートを作成して、そちらで実行してみてください。(こちらで試した限りではエラーは発生していません)
marus2024

2024/03/08 04:28

コメントありがとうございます。新規に実行したところ問題が解決しました! ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
melian

2024/03/08 04:37

解決できてよかったです。回答欄に投稿しました。
marus2024

2024/03/08 05:02

確認しました。 いろいろとありがとうございました。
melian

2024/03/08 09:23

> ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか? もしかして、この文言はコメントに自動的に挿入されるテンプレートなのでしょうか?
marus2024

2024/03/08 09:59

その文章については回答欄にあるテンプレートです。 ご不快に思われたのであれば申し訳ありません。
melian

2024/03/08 10:05

いえ、不快ではないのですが、できれば削っておいてほしかったと思います。(無駄な投稿をしないで済む様に)
marus2024

2024/03/08 10:58

今後気を付けます。 教えていただきありがとうございます。
guest

回答1

0

私:

ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?

もしかして、この文言はコメントに自動的に挿入されるテンプレートなのでしょうか?

marus2024 さん:

その文章については回答欄にあるテンプレートです。

なので、削除。

投稿2024/03/08 04:36

編集2024/03/08 10:08
melian

総合スコア19825

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問