Q&A
PythonとKerasでお音声を学習させていました。学習自体はなんとか回ったのですが、予測ができません。(model.predict)詳しくは下記のエラーを見てください。
おそらく配列の形が間違っているということだと思ったので、reshapeを使ってみたのですが、うまくいきませんでした。わかるかた回答、アドバイスよろしくお願いします。
###エラー
ValueError: Error when checking input: expected dense_1_input to have shape (44032,) but got array with shape (1,)
###コード
学習した時のコード
python
1import numpy as np 2from sklearn.model_selection import train_test_split 3import cv2 4import os 5from keras.models import Sequential 6from keras.utils import np_utils 7from keras.layers.convolutional import Conv2D, UpSampling1D 8from keras.layers.pooling import MaxPooling1D 9from keras.layers import Dense, Dropout, Activation, Flatten 10from keras.preprocessing.image import array_to_img, img_to_array 11import librosa 12 13X = [] 14Y = [] 15 16for file in os.listdir("data/train/other/"): 17 if file == ".DS_Store": 18 continue 19 path = "data/train/other/" + file 20 sound = librosa.load(path) 21 sound = sound[0] 22 print(sound.shape) 23 X.append(sound) 24 Y.append(0) 25 26for file in os.listdir("data/train/seki/"): 27 if file == ".DS_Store": 28 continue 29 path = "data/train/other/" + file 30 sound = librosa.load(path) 31 sound = sound[0] 32 print(sound.shape) 33 X.append(sound) 34 Y.append(1) 35 36X = np.asarray(X) 37Y = np.asarray(Y) 38 39Y = np_utils.to_categorical(Y,2) 40X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state = 111) 41model = Sequential() 42 43model.add(Dense(20, activation = "relu", input_dim = (44032))) 44model.add(Dense(20, activation = "relu")) 45model.add(Dense(30, activation = "relu")) 46model.add(Dense(2, activation = "softmax")) 47 48model.compile(loss='categorical_crossentropy', optimizer='Adam', metrics=['accuracy']) 49# 実行。出力はなしで設定(verbose=0)。 50model.fit(X_train, y_train, batch_size=5, epochs=300, validation_data = (X_test, y_test)) 51model.save("seki2.h5")
予測した時のコード
python
1from keras.models import load_model 2import numpy as np 3import os 4import librosa 5 6model = load_model("seki2.h5") 7 8sound = librosa.load("data/train/other/0.wav")[0] 9print(sound) 10result = model.predict_classes(sound)
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
退会済みユーザー
2019/07/28 03:16
2019/07/28 06:48
2019/07/28 07:08 編集
退会済みユーザー
2019/12/06 12:26