前提・実現したいこと
kerasを用いて画像データの全結合型ニューラルネットワークの学習プロセス構築中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
プログラムが期待している入力の次元数(※1)と実際に渡している入力(※2)のnumpy配列の次元数が合わない
それぞれの次元数に関しての認識は以下の通りです。
※1:2次元
※2:4次元(2000行×1チャンネル×28ピクセル×28ピクセル)
エラーメッセージ --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-185-bd4ddb1d111d> in <module> 1 # 訓練の実行 2 # (x_train, y_trainはNumpy行列の学習データ) ----> 3 model.fit(X_train, y_train, epochs=2) //anaconda3/lib/python3.7/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) 950 sample_weight=sample_weight, 951 class_weight=class_weight, --> 952 batch_size=batch_size) 953 # Prepare validation data. 954 do_validation = False //anaconda3/lib/python3.7/site-packages/keras/engine/training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size) 749 feed_input_shapes, 750 check_batch_axis=False, # Don't enforce the batch size. --> 751 exception_prefix='input') 752 753 if y is not None: //anaconda3/lib/python3.7/site-packages/keras/engine/training_utils.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix) 126 ': expected ' + names[i] + ' to have ' + 127 str(len(shape)) + ' dimensions, but got array ' --> 128 'with shape ' + str(data_shape)) 129 if not check_batch_axis: 130 data_shape = data_shape[1:] ValueError: Error when checking input: expected dense_41_input to have 2 dimensions, but got array with shape (2000, 1, 28, 28) ### 該当のソースコード train_data = np.load("train_data.npy") train_label = np.load("train_label.npy") print(train_data.shape) print(train_label.shape) train_sample = train_data[8].reshape(28,28) print(train_sample) X_train = X_train.astype('float32') X_test = X_test.astype('float32') X_train = (X_train - X_train.min()) / X_train.max() model = Sequential([Dense(32, input_shape = None)]) model.add(Dense(units=64, activation='relu', input_dim=784)) model.add(Dense(units=10, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) model.fit(X_train, y_train, epochs=2) ```ここに言語名を入力 python ### 試したこと ・学習データのshapeを(2000, 784)に変えてみる →以下の同様なエラーメッセージが表示される。 ValueError: Error when checking input: expected dense_47_input to have shape (10,) but got array with shape (784,) ### 補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/19 10:50