最后的比较是使用卷积神经网络(CNN 或 ConvNet)。 CNN 是一种深度学习算法,主要用于图像识别、图像分类、对象检测等。在本次比较中,CNN 用于 MNIST(修改后的国家标准与技术研究院)数据集的图像分类。该数据集包含 60,000 张训练图像和 10,000 张测试图像,其中每张图像都是黑白(双层)手写数字。与随机森林比较一样,图像的标签是已知的,这使其成为一个监督的深度学习问题。
“这种悬念让我难以忍受”
下图显示了运行模型时获得的结果。为了公平比较,所有模型都在同一个 CPU[2] 上运行。当然,也有改善结果的可能性,例如 GPU 加速,但由于实现速度太快,所以选择不这样做。分析的重点主要在于对 DS 语言的探索; ,还是需要从 BC 数据 头开始构建它们?因此,模型的优化超出了本分析的范围。
*Julia 是一个“提前”编译器,显示的秒数来自第二次运行。
图 1:每种语言每种情况的运行时
用例结果表明,在随机森林和 k-means 情况下,Rust 和 Go 在编译时确实比 Python 快得多。编译后,Rust 的速度甚至比 Go 快两倍多。但在这里,Go 确实展示了其作为一种快速编译语言的实力,因为它的编译性能甚至超过了 Python。
然而,对于 CNN 用例来说,Python 占据了主导地位。在这里,Rust 较小的数据科学社区真正显现出来,因为无法让可用的 CNN 包工作(库:Out of the Box)。这主要是因为可用的 CNN 包运行在旧版本的 Rust 上,并且文档和解释很少。当然,经验丰富的 Rust 程序员能够创建出色的 CNN 模型,但优秀的数据科学语言的特点之一是学习曲线平缓。但这并不温和。