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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Keras

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

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

Q&A

解決済

1回答

1443閲覧

CNNによるCIFAR-10の分類問題を判別したい

akanenko0306

総合スコア13

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Keras

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

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

0グッド

0クリップ

投稿2019/04/19 07:38

前提・実現したいこと

CNNを用いて、CIFAR-10のデータセットを分類したいです。
jupyternotebookを使用しています。

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

ValueError: Error when checking target: expected activation_40 to have 2 dimensions, but got array with shape (50000, 10, 10)

該当のソースコード

Python

1import matplotlib.pyplot as plt 2import keras 3from keras.datasets import cifar10 4from keras.models import Sequential 5from keras.layers import Dense, Dropout, Activation, Flatten 6from keras.layers import Conv2D, MaxPooling2D 7 8num_classes = 10 9im_rows = 32 10im_cols = 32 11in_shape = (im_rows, im_cols, 3) 12 13(X_train, y_train), (X_test, y_test) = cifar10.load_data() 14 15X_train = X_train.astype('float32') / 255 16X_test = X_test.astype('float32') / 255 17 18y_train = keras.utils.to_categorical(y_train, num_classes) 19y_test = keras.utils.to_categorical(y_train, num_classes) 20 21model = Sequential() 22model.add(Conv2D(32, (3, 3), padding='same', 23 input_shape=in_shape)) 24model.add(Activation('relu')) 25model.add(Conv2D(32, (3, 3))) 26model.add(Activation('relu')) 27model.add(MaxPooling2D(pool_size=(2, 2))) 28model.add(Dropout(0.25)) 29 30model.add(Conv2D(64, (3, 3), padding='same')) 31model.add(Activation('relu')) 32model.add(Conv2D(64, (3, 3))) 33model.add(Activation('relu')) 34model.add(MaxPooling2D(pool_size=(2, 2))) 35model.add(Dropout(0.25)) 36 37model.add(Flatten()) 38model.add(Dense(512)) 39model.add(Activation('relu')) 40model.add(Dropout(0.5)) 41model.add(Dense(num_classes)) 42model.add(Activation('softmax')) 43 44model.compile( 45 loss='categorical_crossentropy', 46 optimizer='adam', 47 metrics=['accuracy']) 48 49hist = model.fit(X_train, y_train, 50 batch_size=32, epochs=50, 51 verbose=1, 52 validation_data=(X_test, y_test)) 53 54score = model.evaluate(X_test, y_test, verbose=1) 55print('正解率=', score[1], 'loss=', score[0]) 56 57plt.plot(hist.history['acc']) 58plt.plot(hist.history['val_acc']) 59plt.title('Accuracy') 60plt.legend(['train', 'test'], loc='upper left') 61plt.show() 62plt.plot(hist.history['loss']) 63plt.plot(hist.history['val_loss']) 64plt.title('Loss') 65plt.legend(['train', 'test'], loc='upper left'), 66plt.show()

試したこと

コードの打ち間違いを確認しましたが、なさそうでした。

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

本を使用して勉強しています。今回は本に記載されているコードをそのまま打ちました。
Python初心者ですので基本的な部分でつまづいている可能性がありますが、わかる方いらっしゃいますでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

おそらく、本を写すときの打ち間違いだと思いますが、以下の点がおかしいです。

diff

1- y_test = keras.utils.to_categorical(y_train, num_classes) 2+ y_test = keras.utils.to_categorical(y_test, num_classes)

投稿2019/04/19 07:51

tiitoi

総合スコア21956

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

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

akanenko0306

2019/04/19 07:54

打ち直したら実行できました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問