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

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

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

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

Q&A

解決済

2回答

242閲覧

kerasのImageDataGeneratorを用いた変換処理を行いたい

semisemi

総合スコア18

Keras

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

0グッド

0クリップ

投稿2022/09/28 05:36

前提

kerasのImageDataGeneratorを用いて変換処理を行いたいです。
その際に、以下のようなエラーメッセージが出ました。

実現したいこと

・ImageDataGeneratorを用いた変換処理

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

AttributeError:'numpy.ndarray' object has no attribute 'ImageDataGenerator'

該当のソースコード

python

1siro_train = [] 2siro_label = [] 3 4for dir in os.listdir("train"): 5 dir1 ="train/" + dir 6 if dir == "siro": 7 label = 255 8 9 for file in os.listdir(dir1): 10 siro_label.append(label) 11 12img_path = glob.glob("train/siro/*.png") 13for f in img_path: 14 image = cv2.imread(f) 15 siro_train.append(image) 16siro_train = np.asarray(siro_train) 17 18siro_train = np.array(siro_train) 19siro_train = siro_train.astype('int16') 20siro_label = np.array(siro_label) 21siro_label= siro_label.astype('int16') 22siro_label = siro_label[:,np.newaxis] 23 24siro_train_datagen = image.ImageDataGenerator( 25 rescale = 1./255, 26 rotation_range = 90, 27 fill_mode="constant", 28 vertical_flip = True, 29 brightness_range = [0.7, 1.117], 30 horizontal_flip = True 31 ) 32 33gen = sirp_train_datagen.flow(siro_train, batch_size= 2) 34 35for i in range(4): 36 batches = gen.next() 37 plt.figure(i) 38 # 4次元から3次元データにし、配列から画像にする。 39 gen_img = array_to_img(batches[0]) 40 plt.imshow(gen_img) 41 42plt.show()

試したこと

調べても対策が浮かばず間違いが分からない状況です。

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

windows10(64bit)
anacondaを使用
python 3.8.13
TensorFlow 2.3
Spyder 5.3.1を利用

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

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

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

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

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

can110

2022/09/28 05:47

imageという変数は何が格納されているでしょうか? また提示されているImageDataGeneratorの使ったコードは何を参考にして書かれたものでしょうか? 以上を質問本文に記載ください。
guest

回答2

0

imagecv2.imreadの戻り値です。
なので、エラーメッセージ通りnumpy.ndarrayが入っています。

python

1image = cv2.imread(f)

kerasImageDataGeneratorを参照するのであれば、keras.preprocessing.imageではないでしょうか。

python

1siro_train_datagen = keras.preprocessing.image.ImageDataGenerator( 2 rescale = 1./255, 3 rotation_range = 90, 4 fill_mode="constant", 5 vertical_flip = True, 6 brightness_range = [0.7, 1.117], 7 horizontal_flip = True 8 )

ImageDataGenerator

投稿2022/09/28 05:52

Matsumon0104

総合スコア1005

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

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

semisemi

2022/09/28 06:16

回答ありがとうございます。 tensorflowをバックエンドに用いたkerasを用いていたのでimage変数の名前を変えることで、無事変換できました。
guest

0

ベストアンサー

ImageDataGeneratorをどのようにインポートしているのかわかりませんが、
たぶん、image というシンボルを以下のところで、使っているので、image.ImageDataGenerator()が想定したものではないのが原因でしょう。

python

1for f in img_path: 2 image = cv2.imread(f) 3 siro_train.append(image)

本来は
keras.preprocessing.image.ImageDataGenerator
です。

投稿2022/09/28 05:54

TakaiY

総合スコア12666

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

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

semisemi

2022/09/28 06:16

回答ありがとうございます。 tensorflowをバックエンドに用いたkerasを用いていたのでimage変数の名前を変えることで、無事変換できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問