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

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

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

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

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

Python 3.x

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

1776閲覧

model.fitの引数validation_stepsでIndexErrorが出た

UmiH

総合スコア2

Keras

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

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

Python 3.x

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/08/16 09:47

編集2020/08/16 11:15

前提・実現したいこと

kerasのmodel.fitを一部に用いて、多クラス分類に挑戦しました(16クラス分類)。
しかし、引数のvalidation_stepsあたりでエラーメッセージIndexError: list index out of rangeが出てしまい、動かすことができません。。。
または、該当のコード以外のところに原因があるのでしょうか??
ご教示のほどよろしくお願い致しますm(__)m

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

--------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-78-7cd18013f2bc> in <module> 42 validation_data=(X_val, Y_val), 43 callbacks=cbs, ---> 44 verbose=verbose 45 ) ~/anaconda3/envs/prediction_lifetime/lib/python3.6/site-packages/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs) 1037 initial_epoch=initial_epoch, 1038 steps_per_epoch=steps_per_epoch, -> 1039 validation_steps=validation_steps) 1040 1041 def evaluate(self, x=None, y=None, ~/anaconda3/envs/prediction_lifetime/lib/python3.6/site-packages/keras/engine/training_arrays.py in fit_loop(model, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps) 137 indices_for_conversion_to_dense = [] 138 for i in range(len(feed)): --> 139 if issparse(ins[i]) and not K.is_sparse(feed[i]): 140 indices_for_conversion_to_dense.append(i) 141 IndexError: list index out of range

該当のソースコード

python

1#(以下、動かしているコードの一部です) 2batch_size=128 3epochs=100 4verbose=1 5steps_per_epoch=X_train.shape[0] // batch_size 6validation_steps=X_val.shape[0] // batch_size 7 8history = model.fit( 9 steps_per_epoch=steps_per_epoch, 10 epochs=epochs, 11 validation_steps=validation_steps, #おそらくここがエラーの原因 12 validation_data=(X_val, Y_val), 13 callbacks=cbs, 14 verbose=verbose 15)

このコードにあるX_train,X_valの形状ですが、それぞれ
X_train : (8750, 700)
X_val : (4250, 700)
となっております。

試したこと

validation_stepsの値定義について調べて見た結果、上記のコードにある通り、valデータの大きさとbatch_sizeの商で大丈夫だ、とありましたがここではそれでもダメでした。
それでもvalidation_stepsの値がよくないみたいなので、他にも適当な値を実際に入れてみたりしましたが同様のエラーでした。

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

kerasのバージョンは「2.2.4」でした。

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

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

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

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

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

meg_

2020/08/16 11:10

エラーメッセージでは > 43 #callbacks=cbs, ですが、コードでは > callbacks=cbs, です。質問のコードはエラーが発生したコードとは別のものではありませんか?
UmiH

2020/08/16 11:14

見ていただきありがとうございます。 すみません、その部分はどの引数でエラーが出ているのか確かめた際のものが残ったままになっていました。それ以外の部分は同じです。しかし、この部分がコメントアウトされていなくても同じエラーが出ました。
meg_

2020/08/16 12:19

model.fit()にx,yが抜けているように見えますが違いますか?
UmiH

2020/08/16 13:07

ありがとうございます! X_train,Y_trainを入れたことで先ほどのエラーは取り除かれましたm(___)m
guest

回答1

0

自己解決

解決いたしました。お力添えくださった"meg_様、ありがとうございました。

以下のサイトを参考にしていたのですが、
サイト(https://qiita.com/takurooo/items/82837e44b466e7634c98#4%E5%AD%A6%E7%BF%92)
model.fit()の引数datagen.flow()が不要だったので削除した際に、X_train,Y_trainも消えていて、そのあと書き加えることをしていませんでした。

validation_stepsは上記の求め方で合っていたようです。
そして、今回の経験から、validation_stepsにエラーが出ていても、trainがない場合、題目のようなエラーが出ることがわかりました。単純なミスでお騒がせしてしまい、申し訳ございませんでした。

投稿2020/08/16 13:15

UmiH

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問