从某种意义讲,tensorflow这个项目已经失败了,要不了几年以后,江湖上再无tensorflow
因为tensorflow2.0 和tensorflow1.0 从本质上讲就是两个项目,1.0的静态图有他的优势,比如性能方面,但是debug不方便,2.0的动态图就是在模仿pytorch,但是画虎不成反类犬.
为了对比1.0 与2.0
1. pip install tensorflow==2.0.0a0
2. 为了控制变量我把mnist保存到本地的mongodb
3. 两种网络结构是一样的
ipython
import mnist_data mnist_data.save_mnist_mongodb()
0 100 200 300 400 500 ...
Step 1600 : loss 0.597398758 ; accuracy 0.906712472 Step 1700 : loss 0.0526806675 ; accuracy 0.90900588 Step 1800 : loss 0.212036133 ; accuracy 0.911422193 Step 1900 : loss 0.245924264 ; accuracy 0.913889468 Step 2000 : loss 0.0638188794 ; accuracy 0.915765 20.71102285385132 Final step 2000 : loss tf.Tensor(0.06381888, shape=(), dtype=float32) ; accuracy tf.Tensor(0.915765, shape=(), dtype=float32)
tensorflow2.0 耗时20.7秒
pip install tensorflow==1.13.1
step 1700, training accuracy 0.960 step 1800, training accuracy 0.900 step 1900, training accuracy 0.930 12.46434211730957 test accuracy 0.942
tensorflow2.0 耗时12.46秒,所以在用cpu 做训练时,相同的网络结构,相同的数据集合,tensorflow2.0比tensorflow1.0慢60%,tensorflow 静态图有非常明显的速度优势.
这是 tensorflow2.0 在训练时的cpu占用32.3%
这是 tensorflow1.0 在训练时的cpu占用63%,这也是tensorflow1.0 的优势,更能发挥硬件的优势
以上这篇tensorflow2.0与tensorflow1.0的性能区别介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。