最近为了对比神经网络在不同语言中的运行效率,于是手搓了一个简单模型在不同语言中的代码,在这儿记录一下。
基于MINIST手写数字数据集,采用3层全连接网络,由Pytorch、Python、C++、CUDA四个版本实现。
- 实验结果
- Pytorch版
- Python版
2.1.Numpy版
2.2.纯Python版 - C++版
- CUDA版
神经网络主要有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.时间对比- 实验环境:联想YOGA笔记本,CPU:11th Gen Intel® Core™ i5-1135G7 @ 2.40GHz 2.42 GHz,内存:16G,无GPU
- 所有代码都是在batchsize=1的条件下进行的测试
- 测试次数为500轮
Pytorch | Numpy | 纯Python | C++ | CUDA | |
---|---|---|---|---|---|
时间(单位:秒) | 2.5 | 7.2 | 823 | 38 |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)