前提・実現したいこと
MLPのプログラムを作成したいのですが、以下のエラー文が出てきてしまいます。
引数としてlayerが足りないという認識でいいんでしょうか?
その場合、どの部分を直せばいいのか教えてください。
使用教科書:「Pythonによる AI・機械学習・深層学習アプリのつくり方」
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-3-7de94fae9473> in <module> 19 #MLPモデル構造を定義 20 model = Sequential ---> 21 model.add(Dense(512, activation='relu', input_shape=(in_size,))) 22 model.add(Dropout(0.2)) 23 model.add(Dense(512, activation='relu')) TypeError: add() missing 1 required positional argument: 'layer'
該当のソースコード
python
1#MLPでMNISTの分類問題に挑戦 2import keras 3from keras.models import Sequential 4from keras.layers import Dense, Dropout 5from keras.optimizers import RMSprop 6from keras.datasets import mnist 7import matplotlib.pyplot as plt 8 9# 入力と出力を指定 10in_size = 28 * 28 11out_size = 10 12 13#MNIST のデータを読み込み 14(X_train, y_train), (X_test, y_test) =mnist.load_data() 15 16# データを28*28=784 の一次元配列に変換 17X_train=X_train.reshape(-1,784).astype('float32') / 255 18X_test = X_test.reshape(-1, 784).astype('float32') / 255 19 20# ラベルデータを one-hot ベクトルに直す 21y_train = keras.utils.np_utils.to_categorical(y_train.astype('int32'),10) 22y_test = keras.utils.np_utils.to_categorical(y_test.astype('int32'),10) 23 24#MLPモデル構造を定義 25model = Sequential 26model.add(Dense(512, activation='relu', input_shape=(in_size,))) 27model.add(Dropout(0.2)) 28model.add(Dense(512, activation='relu')) 29model.add(Dropout(0.2)) 30model.add(Dense(out_size, activatione='softmax')) 31 32# モデルをコンパイル 33model.compile(loss='categorical_crossentropy',optimizer=RMSprop(),metrics=['accuracy']) 34 35#学習を実行 36hist = model.fit(X_train, y_train,batch_size=128,epochs=350,verbose=1,validation_data=(X_test, y_test)) 37 38#モデルを評価 39score = model.evaluate(X_test, y_test, verbose=1) 40print('正解率 = ', score[1], 'loss=', score[0]) 41 42# 学習の様子をグラフへ描画 43# 正解率の推移をプロット 44plt.plot(hist.history['acc']) 45plt.plot(hist.history['val_acc']) 46plt.title('Accuracy') 47plt.legend(['train', 'test'], loc='upper left') 48plt.show() 49 50# ロスの推移をプロット 51plt.plot(hist.history['loss']) 52plt.plot(hist.history['val_loss']) 53plt.title('Loss') 54plt.legend(['train', 'test'], loc='upper left') 55plt.show()
お願い
がちがちの初心者なのでoracleのサイトだけ載せていただいても理解するのが難しいためどのように書けばいいか教えて頂けると幸いです。
また、質問のマナー等が間違っている、内容がわかりにくい等ありましたらご指摘お願いします。
回答1件
あなたの回答
tips
プレビュー