我正在研究一个音频分类器项目,目前当我实时运行预测器时,它会捕获一小段音频,然后开始预测过程,然后通过终端输出结果,如下所示:
[INFO] 2020-08-07 14:49:20,695: Predictions: Dog: 1.00
[INFO] 2020-08-07 14:49:20,698: Stop processing.
[INFO] 2020-08-07 14:49:21,707: Start processing.
[INFO] 2020-08-07 14:49:21,847: Predictions: Cat: 0.98
[INFO] 2020-08-07 14:49:21,849: Stop processing.
所以,我想要的是将这些结果保存到 CSV 文件中。
到目前为止我做了什么:
这是我的脚本:
def _process_loop(self):
with WavProcessor() as proc:
self._ask_data.set()
while True:
if self._process_buf is None:
time.sleep(self._processor_sleep_time) #Waiting for data to process
continue
logger.info('Start processing.')
predictions = proc.get_predictions(
self._sample_rate, self._process_buf)
logger.info(
'Predictions: {}'.format(format_predictions(predictions))
)
prediction = pd.DataFrame(predictions, columns=['Predicted Class', 'Accuracy']).to_csv('predictions.csv')
logger.info('Stop processing.')
self._process_buf = None
self._ask_data.set()
我将这一行添加到我的代码中,(prediction = pd.DataFrame(predictions, columns=['Predicted Class', 'Accuracy']).to_csv('predictions.csv'))
就像在上面的代码中一样,并开始在这里得到一些东西。我得到的只是保存在 csv 文件中的一个结果。具体来说,它只保存最后检测到的结果。
Predicted Class Accuracy
Cat 0.98
所以,我当前的问题是如何将所有预测结果保存在我的 CSV 文件中。
如果有人可以帮助我解决这个问题,我将不胜感激。
您正在每次迭代中重写文件。您可以指定mode
pandasto_csv
函数的写入。如果将其设置为a
.
像这样的东西:
pd.DataFrame(predictions, columns=['Predicted Class', 'Accuracy']).to_csv('predictions.csv', mode='a', header=False)
一些不错的参考:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html
https://tutorial.eyehunts.com/python/python-file-modes-open-write-append-rrwwx-etc/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句