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

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

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

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

Python 3.x

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

Q&A

解決済

1回答

754閲覧

MLPの勉強、教科書通りのコードのはずがエラー。

James1201

総合スコア15

Keras

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

Python 3.x

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

0グッド

0クリップ

投稿2018/04/18 13:05

編集2018/04/18 13:39

MLPの練習で教科書通りにコーディングをしているのですが、エラーが出てしまいます。
どなたか、間違いの方をご指摘していただけませんでしょうか。
よろしくお願い致します。

入力したコード↓

python3

1from keras.models import Sequential 2from keras.layers import Dense, Dropout, Activation 3from keras.wrappers.scikit_learn import KerasClassifier 4from keras.utils import np_utils 5from sklearn.cross_validation import train_test_split 6from sklearn import cross_validation, metrics 7import json 8 9max_words = 67395 #入力単語数 10nb_classes = 9 #9カテゴリを分類 11 12batch_size = 64 13nb_epoch = 20 14 15#MLPモデルの生成 16def build_model(): 17 model = Sequential() 18 model.add(Dense(512, input_shape=(max_words,))) 19 model.add(Activation('relu')) 20 model.add(Dropout(0.5)) 21 model.add(Dense(nb_classes)) 22 model.add(Activation('softmax')) 23 model.compile(loss='categorical_crossentropy', 24 optimizer='adam', 25 metrics=['accuracy']) 26 return model 27 28#データを読み込み 29data = json.load(open("./newstext/data-mini.json")) 30#data = json.load(open("./newstext/data.json")) 31X = data["X"] # テキストを表すデータ 32Y = data["Y"] # カテゴリデータ 33 34#学習 35X_train, X_test, Y_train, Y_test = train_test_split(X, Y) 36Y_train = np_utils.to_categorical(Y_train, nb_classes) 37print(len(X_train), len(Y_train)) 38model = KerasClassifier( 39 build_fn=build_model, 40 nb_epoch=nb_epoch, 41 batch_size=batch_size) 42model.fit(X_train, Y_train)

エラー内容↓

python3

1148 148 2--------------------------------------------------------------------------- 3AttributeError Traceback (most recent call last) 4<ipython-input-214-d3a06600dbca> in <module>() 5 7 nb_epoch=nb_epoch, 6 8 batch_size=batch_size) 7----> 9 model.fit(X_train, Y_train) 8 9~/anaconda3/lib/python3.6/site-packages/keras/wrappers/scikit_learn.py in fit(self, x, y, sample_weight, **kwargs) 10 207 if sample_weight is not None: 11 208 kwargs['sample_weight'] = sample_weight 12--> 209 return super(KerasClassifier, self).fit(x, y, **kwargs) 13 210 14 211 def predict(self, x, **kwargs): 15 16~/anaconda3/lib/python3.6/site-packages/keras/wrappers/scikit_learn.py in fit(self, x, y, **kwargs) 17 149 fit_args.update(kwargs) 18 150 19--> 151 history = self.model.fit(x, y, **fit_args) 20 152 21 153 return history 22 23~/anaconda3/lib/python3.6/site-packages/keras/models.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) 24 961 initial_epoch=initial_epoch, 25 962 steps_per_epoch=steps_per_epoch, 26--> 963 validation_steps=validation_steps) 27 964 28 965 def evaluate(self, x=None, y=None, 29 30~/anaconda3/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) 31 1628 sample_weight=sample_weight, 32 1629 class_weight=class_weight, 33-> 1630 batch_size=batch_size) 34 1631 # Prepare validation data. 35 1632 do_validation = False 36 37~/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size) 38 1474 self._feed_input_shapes, 39 1475 check_batch_axis=False, 40-> 1476 exception_prefix='input') 41 1477 y = _standardize_input_data(y, self._feed_output_names, 42 1478 output_shapes, 43 44~/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in _standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix) 45 74 data = data.values if data.__class__.__name__ == 'DataFrame' else data 46 75 data = [data] 47---> 76 data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data] 48 77 49 78 if len(data) != len(names): 50 51~/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in <listcomp>(.0) 52 74 data = data.values if data.__class__.__name__ == 'DataFrame' else data 53 75 data = [data] 54---> 76 data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data] 55 77 56 78 if len(data) != len(names): 57 58AttributeError: 'list' object has no attribute 'ndim'

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

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

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

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

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

guest

回答1

0

自己解決

X、Yのテストデータ、訓練データをnp.array()のなかにに入れてやることで上手くいきました。
また、教科書の方にも訂正箇所があったようなので、そこも参考にしながら解決しました。

投稿2018/04/18 14:27

James1201

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問