手写神经网络 | Pytorch、Python、C++、CUDA运行时间对比

手写神经网络 | Pytorch、Python、C++、CUDA运行时间对比,第1张

最近为了对比神经网络在不同语言中的运行效率,于是手搓了一个简单模型在不同语言中的代码,在这儿记录一下。
基于MINIST手写数字数据集,采用3层全连接网络,由Pytorch、Python、C++、CUDA四个版本实现。

1.目录
  1. 实验结果
  2. Pytorch版
  3. Python版
    2.1.Numpy版
    2.2.纯Python版
  4. C++版
  5. CUDA版
2.网络结构说明

神经网络主要有3层全连接层构成,包括Relu激活函数和Softmax函数,网络输入大小为784(28×28),输出大小为10,即onehot编码格式。网络结构图如下:

全连接层1:input_size=784, output_size=1024

全连接层2:input_size=1024, output_size=1024

全连接层3:input_size=1024, ouput_size=10

激活函数:Relu

损失函数:交叉熵损失(CrossEntropyLoss)

优化器:随机梯度下降(SGD)

3.时间对比
  1. 实验环境:联想YOGA笔记本,CPU:11th Gen Intel® Core™ i5-1135G7 @ 2.40GHz 2.42 GHz,内存:16G,无GPU
  2. 所有代码都是在batchsize=1的条件下进行的测试
  3. 测试次数为500轮
PytorchNumpy纯PythonC++CUDA
时间(单位:秒)2.57.282338

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1324211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存