【发布时间】:2020-12-16 18:08:21
【问题描述】:
这个问题与here 发布的问题一致,但与 CNN 略有不同。使用特征提取定义:
max_pad_len = 174
n_mels = 128
def extract_features(file_name):
try:
audio, sample_rate = librosa.core.load(file_name, res_type='kaiser_fast')
mely = librosa.feature.melspectrogram(y=audio, sr=sample_rate, n_mels=n_mels)
#pad_width = max_pad_len - mely.shape[1]
#mely = np.pad(mely, pad_width=((0, 0), (0, pad_width)), mode='constant')
except Exception as e:
print("Error encountered while parsing file: ", file_name)
return None
return mely
如何将num_rows、num_columns 和num_channels 的正确维度输入到训练和测试数据中?
在构建 CNN 模型时,如何确定要输入的正确形状?
model = Sequential()
model.add(Conv2D(filters=16, kernel_size=2, input_shape=(num_rows, num_columns, num_channels), activation='relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Dropout(0.2))
【问题讨论】:
-
您使用的是顺序 keras 格式...如果您不指定任何输入形状?
-
@MarcoCerliani,我不明白你的回复。你能详细说明一下吗?
-
model.add(Conv2D(filters=16, kernel_size=2)) 而不是 model.add(Conv2D(filters=16, kernel_size=2, input_shape=(num_rows, num_columns, num_channels))
-
感谢您的回复!在您这里提到的解决方案中,网络会自动扩展?...意思是,会自动生成正确的维度吗?
-
是的...你只需要传递相同维度的数据
标签: machine-learning keras conv-neural-network librosa spectrogram