回答編集履歴

2 edit

mkgrei

mkgrei score 8297

2018/01/01 00:22  投稿

jupyter-notebookの場合メモリが保持されるので、変数が変更されたりすると中身が変わっている状態になってエラーになります。
上記のコードは間違っておりませんので、x_train、y_train(もしくはx_test、y_test)がどこかのタイミングで変更された可能性が高いです。
そもそもDense層が3つしかないので、dense_6ということはモデルを二度作成していて、その最後の層の入力がおかしいというエラーです。
最後の層は前の層からの入力のほか、教師データのラベルも入力に受け取りえます。
この度のエラーはまさに後者の方です。
y_testがおかしいようですね。
データをロードし直していない状態で、y_testを書き換えながら2度以上エンコードしていることが問題です。
y_train(y_test)がおかしいようですね。
データをロードし直していない状態で、y_train(y_test)を書き換えながら2度以上エンコードしていることが問題です。
このようなエラーを回避するにはセルの分割の場所を意識するとよいかもしれません。
1 edit

mkgrei

mkgrei score 8297

2018/01/01 00:21  投稿

jupyter-notebookの場合メモリが保持されるので、変数が変更されたりすると中身が変わっている状態になってエラーになります。
上記のコードは間違っておりませんので、x_train、y_trainがどこかのタイミングで変更された可能性が高いです。
上記のコードは間違っておりませんので、x_train、y_train(もしくはx_test、y_test)がどこかのタイミングで変更された可能性が高いです。
そもそもDense層が3つしかないので、dense_6ということはモデルを二度作成していて、その最後の層の入力がおかしいというエラーです。
最後の層は前の層からの入力のほか、教師データのラベルも入力に受け取りえます。
この度のエラーはまさに後者の方です。
y_trainがおかしいようですね。
データをロードし直していない状態で、y_trainを書き換えながら2度以上エンコードしていることが問題です。
y_testがおかしいようですね。
データをロードし直していない状態で、y_testを書き換えながら2度以上エンコードしていることが問題です。
このようなエラーを回避するにはセルの分割の場所を意識するとよいかもしれません。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る