**标题**:研究 TensorFlow 和 PyTorch 绑定对机器学习软件质量的影响 **摘要**:本文研究了使用 TensorFlow 和 PyTorch 绑定在 C#、Rust、Python 和 JavaScript 中对机器学习软件质量的影响,包括正确性(训练和测试准确性)和时间成本(训练和推理时间)。实验结果表明,在某些任务中,使用非默认绑定可以帮助提高机器学习软件质量(从时间成本角度),同时仍然达到相同的正确性水平。 **工作原理**: 1. **正确性评估**:使用动态时间规整(DTW)分析训练准确性曲线,使用 Mann-Whitney U 检验比较最终训练模型的性能指标。 2. **时间成本评估**:使用 Bonferroni 校正的 Mann-Whitney U 检验比较默认 Python 绑定和非 Python 绑定的训练时间分布,使用 Cliff"s Delta 效应大小量化差异。 **工作流程**: 1. **训练模型**:使用研究的绑定在 GPU 上训练 LeNet-1、LeNet-5、VGG-16、LSTM、GRU 和 BERT 模型。 2. **记录训练正确性和保存模型**:记录每个训练实验的训练准确性,并在训练完成后计算测试准确性并保存模型。 3. **执行推理并记录推理正确性**:使用每个绑定加载预训练模型并在 CPU 和 GPU 上执行推理,记录交叉绑定测试准确性。 4. **测量和记录训练时间成本**:使用 Bonferroni 校正的 Mann-Whitney U 检验比较默认 Python 绑定和非 Python 绑定的训练时间分布,使用 Cliff"s Delta 效应大小量化差异。 5. **测量和记录推理时间成本**:使用 Bonferroni 校正的 Mann-Whitney U 检验比较默认 Python 绑定和非 Python 绑定的推理时间分布,使用 Cliff"s Delta 效应大小量化差异。 **应用前景**: 1. **开发人员**:可以使用非默认绑定来加速训练时间,或者根据任务和要求选择不同的绑定来进行训练和推理。 2. **绑定所有者**:应该包括绑定的性能基准,以帮助开发人员了解不同绑定的时间成本。 3. **研究人员**:应该研究如何提高预训练模型在不同绑定之间的互操作性和兼容性,以及如何解决绑定中的错误。

Studying the Impact of TensorFlow and PyTorch Bindings on Machine Learning Software Quality

摘要

本文研究了使用 TensorFlow 和 PyTorch 绑定在 C#、Rust、Python 和 JavaScript 中对机器学习软件质量的影响,包括正确性(训练和测试准确性)和时间成本(训练和推理时间)。实验结果表明,在某些任务中,使用非默认绑定可以帮助提高机器学习软件质量(从时间成本角度),同时仍然达到相同的正确性水平。

原理

  1. 正确性评估:使用动态时间规整(DTW)分析训练准确性曲线,使用 Mann-Whitney U 检验比较最终训练模型的性能指标。
  2. 时间成本评估:使用 Bonferroni 校正的 Mann-Whitney U 检验比较默认 Python 绑定和非 Python 绑定的训练时间分布,使用 Cliff’s Delta 效应大小量化差异。

流程

  1. 训练模型:使用研究的绑定在 GPU 上训练 LeNet-1、LeNet-5、VGG-16、LSTM、GRU 和 BERT 模型。
  2. 记录训练正确性和保存模型:记录每个训练实验的训练准确性,并在训练完成后计算测试准确性并保存模型。
  3. 执行推理并记录推理正确性:使用每个绑定加载预训练模型并在 CPU 和 GPU 上执行推理,记录交叉绑定测试准确性。
  4. 测量和记录训练时间成本:使用 Bonferroni 校正的 Mann-Whitney U 检验比较默认 Python 绑定和非 Python 绑定的训练时间分布,使用 Cliff’s Delta 效应大小量化差异。
  5. 测量和记录推理时间成本:使用 Bonferroni 校正的 Mann-Whitney U 检验比较默认 Python 绑定和非 Python 绑定的推理时间分布,使用 Cliff’s Delta 效应大小量化差异。

应用

  1. 开发人员:可以使用非默认绑定来加速训练时间,或者根据任务和要求选择不同的绑定来进行训练和推理。
  2. 绑定所有者:应该包括绑定的性能基准,以帮助开发人员了解不同绑定的时间成本。
  3. 研究人员:应该研究如何提高预训练模型在不同绑定之间的互操作性和兼容性,以及如何解决绑定中的错误。