CNN输入层数据维度问题?

为社么加了输入数据一维还是报错
CNN输入层数据维度问题?

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)


回答:

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

以上是 CNN输入层数据维度问题? 的全部内容, 来源链接: utcz.com/p/939049.html

回到顶部