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

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

詳細はこちら
Keras

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

Google Colaboratory

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

Python

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

Q&A

解決済

1回答

3748閲覧

前は動いていたのに、突然出たエラーについて

gorou-0000

総合スコア5

Keras

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

Google Colaboratory

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

Python

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

0グッド

0クリップ

投稿2023/09/22 09:18

編集2023/09/25 05:27

実現したいこと

画像分類を行っていたプログラムを数か月ぶりに動かそうと、以前と同じままのコードで動かしたところエラーが出てしまいました。
前は正常に動いていました。バージョンが変わったのでしょうか、お力を貸してほしいです。

python 3.10.12
tensorflow 2.13.0
keras 2.13.1

エラーメッセージ

ImportError Traceback (most recent call last) <ipython-input-10-aa9ccf20e330> in <cell line: 6>() 4 import glob as glob 5 from sklearn.model_selection import train_test_split ----> 6 from keras.utils import np_utils 7 #フォルダ名をクラス名にする 8 path = "./images" ImportError: cannot import name 'np_utils' from 'keras.utils' (/usr/local/lib/python3.10/dist-packages/keras/utils/__init__.py) --------------------------------------------------------------------------- NOTE: If your import is failing due to a missing package, you can manually install dependencies using either !pip or !apt. To view examples of installing some common dependencies, click the "Open Examples" button below. ---------------------------------------------------------------------------

該当のソースコード

python

1import os 2import cv2 3import numpy as np 4import glob as glob 5from sklearn.model_selection import train_test_split 6from keras.utils import np_utils 7#フォルダ名をクラス名にする 8path = "./images" 9folders = os.listdir(path) 10classes = [f for f in folders if os.path.isdir(os.path.join(path, f))] 11n_classes = len(classes) 12 13#画像とラベルの格納 14X = [] 15Y = [] 16 17for label,class_name in enumerate(classes): 18 files = glob.glob("./images/" + class_name +"/*.JPG") 19 for file in files: 20 img = cv2.imread(file) 21 img = cv2.resize(img,dsize = (224,224)) 22 X.append(img) 23 Y.append(label) 24 25X = np.array(X) 26X = X.astype('float32') 27X /= 255.0 28X[0] 29 30#ラベルの変換 31Y = np.array(Y) 32Y = np_utils.to_categorical(Y,n_classes) 33Y[:5]

参考にさせていただいたもの

https://youtu.be/i3ZIRJYlzkU?si=5gAUlG9RKpbuhSQl

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

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

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

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

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

can110

2023/09/22 09:47

バージョンが変わったのか確認した結果を質問本文に追記ください
meg_

2023/09/22 10:13

> 数か月ぶりに動かそうと、以前と同じままのコードで動かしたところエラーが出てしまいました。 > バージョンが変わったのでしょうか 外部のサービスを使う以上環境の変化は想定内だと思います。以前のバージョンを覚えていないなら、エラーが出なくなるまでバージョンダウンするか、現在の環境に合わせてコードを修正すれば良いかと思います。
jbpb0

2023/09/22 11:28

インポートした「np_utils」を使うコードを、質問を編集して追記してください (ここに書くのではなく、質問に追記する)
gorou-0000

2023/09/25 05:34

can110様 コメントありがとうございます。 バージョンの追記をしました。 meg_様 コメントありがとうございます。 無知ですみません。バージョンダウンのやり方をご教授頂けないでしょうか。 jbpb0様 コメントありがとうございます。 その後のコードを追記いたしました。
jbpb0

2023/09/25 14:07

from keras.utils import np_utils ↓ 変更 from keras.utils import to_categorical Y = np_utils.to_categorical(Y,n_classes) ↓ 変更 Y = to_categorical(Y,n_classes) で、どうでしょうか? toge_さんの回答の > 2. np_utilsで利用されていた関数を新しい関数に置き換える です
gorou-0000

2023/09/27 05:48

jbpb0様 コメントありがとうございます。 教えて頂いたコードを変更して実行した結果、無事最後まで動かすことができ、画像分類できるようになりました。とても嬉しいです。 ありがとうございました。
guest

回答1

0

ベストアンサー

このissueが参考になると思います。
https://github.com/keras-team/keras/issues/18363

np_utilsはkeras2.4からはimportできなくなっています。
他の方がコメントされている通り、np_utils内のどの関数を利用されていたかによりますが、np_utilsで提供されていた関数は以下のような形で提供されています。

  • keras.utils.to_categorical
  • keras.utils.to_ordinal
  • keras.utils.normalize

このため、以前動いていたスクリプトを動かすためには以下の2つのいずれかの方法になるかと思います。

  1. np_utilsが提供されている keras 2.3 をインストールする
  2. np_utilsで利用されていた関数を新しい関数に置き換える

ご参考になれば幸いです。

投稿2023/09/22 15:37

toge_

総合スコア243

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

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

gorou-0000

2023/09/27 05:59

toge_様 コメントありがとうございます。 np_utilsはkeras2.4からimportできなくなっているのですね。 2番を参考にさせていただいた結果、無事画像分類できるようになりました。 とても嬉しいです。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問