CNN输入层数据维度问题?-灵析社区

脑洞大咖

为社么加了输入数据一维还是报错 ![](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/99c848cc0ff9fd65075261210b78edf9.png) import numpy as np import librosa import soundfile from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D from keras.optimizer_v1 import Adam import tensorflow as tf def load_audio_data(file_path): audio, sample_rate = librosa.load(file_path, res_type='kaiser_fast') mfccs = librosa.feature.mfcc(y=audio, sr=sample_rate, n_mfcc=40) mfccs_processed = np.mean(mfccs.T,axis=0) return mfccs_processed #CNN def build_model(): model = Sequential() model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(40, 1))) model.add(MaxPooling2D((2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(1, activation='linear')) # 输出层 model.compile(loss='mean_squared_error', optimizer=Adam()) return model # 训练模型 def train_model(model, X_train, y_train): model.fit(X_train,y_train,batch_size=128, epochs=10) audiopath="E:\BaiduNetdiskDownload\yy\kel.wav" audiodata=load_audio_data(audiopath) X_train = np.array([audiodata])# 这里只使用一段音频作为训练数据,实际应用中需要更多数据 print(X_train) X_train= tf.expand_dims(X_train, axis=-1) y_train =1 # 构建并训练模型 model = build_model() train_model(model, X_train, y_train)

阅读量:21

点赞量:0

问AI
conv2d 需要至少 4 维,这里加了一维后也还不够