我正在制作一个神经网络来预测音频数据(以了解有关神经网络如何运作以及如何使用 tensorflow 的更多信息),到目前为止一切都进展顺利,只有一个例外。我环顾四周以解决这个问题,但找不到任何足够具体的东西来帮助我。我设置了数据集和模型,这些工作正常,但是由于某种原因,当我尝试训练模型时,它给了我一个类型错误,即使数据集中的所有值都是 32 位浮点数。如果有人能为我回答这个问题,或者至少朝着正确的方向努力解决这个问题,我将不胜感激。代码和控制台输出如下。(顺便说一句,数据集中的所有值都在 0 和 1 之间,我不知道这是否相关,但我想我会添加它)
编辑:我也包含了 AudioHandler 类,您可以使用它来重现错误。get_audio_array或get_audio_arrays可用于将单个 mp3 或 mp3 目录转换为音频数据数组。您还可以使用dataset_from_arrays从创建的音频数组生成数据集dataset_from_arrays。
from AudioHandler import AudioHandler
import os
seq_length = 22050
BATCH_SIZE = 64
BUFFER_SIZE = 10000
audio_arrays = AudioHandler.get_audio_arrays("AudioDataset", normalized=True)
dataset = AudioHandler.dataset_from_arrays(audio_arrays, seq_length, BATCH_SIZE, buffer_size=BUFFER_SIZE)
print(dataset)
rnn_units = 256
def build_model(rnn_units, batch_size):
model = tf.keras.Sequential([
tf.keras.layers.InputLayer(batch_input_shape=(batch_size, None, 2)),
tf.keras.layers.GRU(rnn_units, return_sequences=True, stateful=True),
tf.keras.layers.Dense(2)
])
return model
model = build_model(rnn_units, BATCH_SIZE)
model.summary()
model.compile(optimizer='adam', loss=tf.keras.losses.MeanSquaredError)
EPOCHS = 10
history …Run Code Online (Sandbox Code Playgroud) python machine-learning keras tensorflow recurrent-neural-network