ValueError: x and y must have same first dimension, but have shapes (165,) and (166,)
ValueError: x and y must have same first dimension, but have shapes (165,) and (166,)
我正在遍历音频文件名列表,加载它们,计算 STE 和 RMSE,然后绘制所述值。但是,大约 20% 的文件偶尔会抛出错误消息。
ValueError: x and y must have same first dimension, but have shapes (165,) and (166,)
ValueError: x and y must have same first dimension, but have shapes (240,) and (241,)
依此类推。
我查看了 ,我相信问题可能与我在下面代码第 2 行对 plt.plot
的调用中也使用了方括号一样。但是,将其更改为括号会引发语法错误。我还觉得奇怪的是,>1000 个样本中只有 20% 受到影响,而且形状似乎增加了 1。
这是元数据问题吗?到底是什么导致了这个问题?
frames = range(len(energy))
t = librosa.frames_to_time(frames, sr=SAMPLE_RATE, hop_length=HOP_LENGTH)
plt.figure(figsize=(15, 5))
plt.plot(t[:len(rmse)], rmse_max_scaled, color='b')
plt.plot(t, energy_max_scaled, 'r--')
librosa.display.waveplot(sample, sr=SAMPLE_RATE, alpha=0.4)
plt.legend(('RMSE', 'Energy'))
@JohanC 指出的问题是没有足够的 t
值作为相应的 y
值。按如下方式重新格式化代码解决了问题。
plt.figure(figsize=(15, 5))
frames = range(len(rmse))
t = librosa.frames_to_time(frames, sr=SAMPLE_RATE, hop_length=HOP_LENGTH)
plt.plot(t[:len(rmse)], rmse_max_scaled, color='b')
frames = range(len(energy))
t = librosa.frames_to_time(frames, sr=SAMPLE_RATE, hop_length=HOP_LENGTH)
plt.plot(t[:len(energy)], energy_max_scaled, 'r--')
librosa.display.waveplot(sample, sr=SAMPLE_RATE, alpha=0.4)
plt.legend(('RMSE', 'Energy'))
这是因为x和y的长度相同,t的值不够
我正在遍历音频文件名列表,加载它们,计算 STE 和 RMSE,然后绘制所述值。但是,大约 20% 的文件偶尔会抛出错误消息。
ValueError: x and y must have same first dimension, but have shapes (165,) and (166,)
ValueError: x and y must have same first dimension, but have shapes (240,) and (241,)
依此类推。
我查看了 plt.plot
的调用中也使用了方括号一样。但是,将其更改为括号会引发语法错误。我还觉得奇怪的是,>1000 个样本中只有 20% 受到影响,而且形状似乎增加了 1。
这是元数据问题吗?到底是什么导致了这个问题?
frames = range(len(energy))
t = librosa.frames_to_time(frames, sr=SAMPLE_RATE, hop_length=HOP_LENGTH)
plt.figure(figsize=(15, 5))
plt.plot(t[:len(rmse)], rmse_max_scaled, color='b')
plt.plot(t, energy_max_scaled, 'r--')
librosa.display.waveplot(sample, sr=SAMPLE_RATE, alpha=0.4)
plt.legend(('RMSE', 'Energy'))
@JohanC 指出的问题是没有足够的 t
值作为相应的 y
值。按如下方式重新格式化代码解决了问题。
plt.figure(figsize=(15, 5))
frames = range(len(rmse))
t = librosa.frames_to_time(frames, sr=SAMPLE_RATE, hop_length=HOP_LENGTH)
plt.plot(t[:len(rmse)], rmse_max_scaled, color='b')
frames = range(len(energy))
t = librosa.frames_to_time(frames, sr=SAMPLE_RATE, hop_length=HOP_LENGTH)
plt.plot(t[:len(energy)], energy_max_scaled, 'r--')
librosa.display.waveplot(sample, sr=SAMPLE_RATE, alpha=0.4)
plt.legend(('RMSE', 'Energy'))
这是因为x和y的长度相同,t的值不够