我正在开发能够预测 10 秒音频文件中有趣时刻的应用程序。我将音频分成 50 毫秒的块并提取音符,因此每个示例有 200 个音符。当我添加卷积层时,它返回一个错误:
ValueError:层 conv1d_1 的输入 0 与该层不兼容:预期 ndim=3,发现 ndim=2。收到完整形状:[无,200]
这是我的代码:
def get_dataset(file_path):
dataset = tf.data.experimental.make_csv_dataset(
file_path,
batch_size=12,
label_name='label',
na_value='?',
num_epochs=1,
ignore_errors=False)
return dataset
train = get_dataset('/content/gdrive/My Drive/MyProject/train.csv')
test = get_dataset('/content/gdrive/My Drive/MyProject/TestData/manual.csv')
feature_columns = []
for number in range(200):
feature_columns.append(tf.feature_column.numeric_column('note' + str(number + 1) ))
preprocessing_layer = tf.keras.layers.DenseFeatures(feature_columns)
model = tf.keras.Sequential([
preprocessing_layer,
tf.keras.layers.Conv1D(32, 3, padding='same', activation=tf.nn.relu, input_shape=[None, 200]),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(50, activation=tf.nn.relu),
tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)
])
model.compile(
loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit(train, epochs=20)
Run Code Online (Sandbox Code Playgroud)
是什么原因导致此问题以及如何解决?