我正在尝试设计一个卷积神经网络来训练预处理的音频文件。因为音频文件具有不同的长度,所以训练示例在一个维度上具有可变大小。我通过将所有示例的零填充填充到相同长度的网络来工作,但我担心这会使网络不准确。我正在使用TensorFlow占位符并尝试将其形状设置为[1,None,None],以便无论每个示例的形状是什么,它都应该适合。但是当它获得卷积部分时,这给了我一个错误:
conv = tf.layers.conv1d(
inputs = input,
filters = 20,
kernel_size = 5,
name = "conv"
)
给出错误:
ValueError: Shape of a new variable (conv/kernel) must be fully defined, but instead was (5, ?, 20).
所以似乎TensorFlow不允许使用占位符进行未知形状的卷积。是否有一种解决方法可以独立运行每个示例而不将它们填充到相同的长度?