Numpy 最小Keras+;声音神经网络

Numpy 最小Keras+;声音神经网络,numpy,scipy,keras,Numpy,Scipy,Keras,我正试图建立一个由音频数据和keras组成的hello世界。我无法理解矢量化数据意味着什么 我试着适应声音数据 我的密码在 错误 audio.shape是(1018624,)。答案应该是一个最小的完全可执行的Ker,例如,处理一个以上的音频文件,最好是在kaggle上 对声音的频谱图进行卷积和卷积的利弊是什么 编辑:直接的问题解决了,我需要指定第一个Keras层的示例声音的尺寸。结帐时,我将充实出一个端到端的可执行示例。通过将最后一个密集类更改为多个类(1没有意义,并且它有错误),它将无错误地进

我正试图建立一个由音频数据和keras组成的hello世界。我无法理解矢量化数据意味着什么

我试着适应声音数据

我的密码在

错误

audio.shape是
(1018624,)
。答案应该是一个最小的完全可执行的Ker,例如,处理一个以上的音频文件,最好是在kaggle上

对声音的频谱图进行卷积和卷积的利弊是什么


编辑:直接的问题解决了,我需要指定第一个Keras层的示例声音的尺寸。结帐时,我将充实出一个端到端的可执行示例。

通过将最后一个密集类更改为多个类(1没有意义,并且它有错误),它将无错误地进行训练:

因此:

x_train = np.expand_dims(audio, 0)
y_train = np.array([[1., 0.]])

model.fit(x_train, y_train, epochs=20)
我看到你也改变了你的
输入形状
-不要。将其设置回:
audio.shape

为了避免混淆,这里有一个基于原始代码的完整片段:

fs, data = scipy.io.wavfile.read('1.wav')

model = Sequential()
model.add(Dense(64, activation='relu', input_shape=data.shape))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

x_train = np.expand_dims(data, 0)
y_train = np.array([[1., 0.]])

model.fit(x_train, y_train, epochs=10)

什么是
data.shape
?这个错误与它的形状不匹配有关。@nuric我对这个例子做了一些修改。你能扩展一下
np.array([[1,0.]])
吗?如何使这个标签更像标签?说
np.array([[['foo','bar']])
。这与原来的问题没有关系。如果要使用数组中的文本标签,只需使用该数组中的索引即可。e、 g.
labels=['foo','bar'];y_train_data=['foo'];y_train=np.array([[labels.index(label)表示y_train_数据中的标签]])
(我忘了在末尾将索引转换为一个hot)以澄清:
[1,0]
在我的代码中只是索引0的一个热编码。对于多类,他们使用
keras.utils.to_category
对标签数据进行大量的一个热编码。我将把这标记为答案,但我将继续充实一个很好的完整示例,说明keras声音NN是有意义的。
model.add(Dense(2, activation='softmax'))
x_train = np.expand_dims(audio, 0)
y_train = np.array([[1., 0.]])

model.fit(x_train, y_train, epochs=20)
fs, data = scipy.io.wavfile.read('1.wav')

model = Sequential()
model.add(Dense(64, activation='relu', input_shape=data.shape))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

x_train = np.expand_dims(data, 0)
y_train = np.array([[1., 0.]])

model.fit(x_train, y_train, epochs=10)