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