python与tensorflow的关系_tensorflow2.0与tensorflow1.0的性能区别介绍

从某种意义讲,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 静态图有非常明显的速度优势.

4cpdly1mfzu.jpg

这是 tensorflow2.0 在训练时的cpu占用32.3%

3j0dnbnvh4s.jpg

这是 tensorflow1.0 在训练时的cpu占用63%,这也是tensorflow1.0 的优势,更能发挥硬件的优势

以上这篇tensorflow2.0与tensorflow1.0的性能区别介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: tensorflow2.0与tensorflow1.0的性能区别介绍

本文地址: http://www.cppcns.com/jiaoben/python/299881.html

### 回答1: TensorFlow 1.0和2.0是不兼容的版本。如果您有使用TensorFlow 1.0编写的代码,并且想要将其转换为TensorFlow 2.0,您需要进行一些更改。 TensorFlow 2.0具有更加简化的API,并且将eager execution作为默认执行模式。这意味着您无需再显式地构建计算图,而可以直接在代码中使用类似Python的语法。 对于TensorFlow 1.0代码的转换,可以使用tf_upgrade_v2脚本来帮助自动转换代码。该脚本将会自动更改您的TensorFlow 1.0代码,并将其转换为TensorFlow 2.0代码。但是,这并不是一个完美的转换过程,因此您仍然需要检查代码是否按照预期工作,并进行必要的手动更改。 另外,TensorFlow 2.0的API和架构与TensorFlow 1.0有很大的不同。因此,如果您想开始使用TensorFlow 2.0,最好的方法是从头开始学习并编写新的代码,而不是直接将TensorFlow 1.0代码转换为TensorFlow 2.0代码。 ### 回答2: TensorFlow 2.0是与先前版本不同的重大更新。虽然TensorFlow 1.x系列被广泛应用于许多领域,但在使用和维护方面仍然存在一些困难。 TensorFlow 2.0旨在使TensorFlow更加易于使用,并降低应用机器学习的门槛。 TensorFlow 2.0具有以下特点: 1. 张量作为默认运算对象,与NumPy兼容性更高。 2. 动态计算图,避免了烦人的图构建过程。 3. 引入Keras作为主要API,使得模型开发和训练更加简单。 4. 使得模型定义、训练和评估的流程更加连贯。 TensorFlow 2.0 API的主要变化是: 1. 弃用了tf.Session(),代之以使用即时执行的Eager Execution。 2. 引入了tf.function(),允许开发者将Python函数转化为TensorFlow图。 3. 融合了Keras API,并提供了更多的高层API组件。 对于TensorFlow 1.x代码,将其转换为TensorFlow 2.0代码并不困难。下面列出了一些方法: 1. 尝试使用tf.compat.v1模块,它提供了许多与TensorFlow 1.x兼容的函数。 2. 使用tf_upgrade_v2工具将代码自动转换为TensorFlow 2.0格式。但是,需要手动解决代码中的任何错误和警告。 3. 逐渐采用TensorFlow 2.0的新API,通过重写旧代码来实现。可以先从一些简单的代码开始,逐渐提高难度。 在TensorFlow 2.0中使用新的API将带来几个优点。首先,新API是更高级的,更易于使用和维护。其次,API本身集成更紧密,使得深度学习任务的定义、训练和调试更加顺畅。最后,TensorFlow 2.0的动态图机制将使得代码编写更加自然和直观。 ### 回答3: TensorFlow 1.0和2.0是两个版本的TensorFlow,其中TensorFlow 2.0是TensorFlow的最新版本。虽然它们有很多共同之处,但也有一些不同之处。下面将介绍如何将TensorFlow 1.0代码转换为TensorFlow 2.0代码。 首先,TensorFlow 2.0中将eager execution作为默认设置。因此,在TensorFlow 1.0中,需要在代码中添加一些操作才能启用eager execution。在TensorFlow 2.0中,无需启用eager execution,可以直接使用。如果要支持TensorFlow 1.0和2.0,可以使用`tf.enable_eager_execution()`或`tf.compat.v1.enable_eager_execution()`。 其次,TensorFlow 2.0中对于一些API进行了更改或删除。例如,用于创建变量的`tf.Variable()`在TensorFlow 2.0中被替换为`tf.compat.v1.Variable()`。还有一些其他的API已经被删除,需要将它们替换为相应的新API。 同时,TensorFlow 2.0中还引入了一些新的API和功能,例如Keras API、tf.function、tf.data等。Keras API是一个高级API,可以更方便地构建神经网络模型。tf.function是一个装饰器,可以将Python函数转换为TensorFlow图中的一个可计算的节点,提高图的性能和可移植性。tf.data是一个用于构建输入管道的API,可以更高效地读取和处理数据。 最后,TensorFlow 2.0中默认使用了更现代化的特性,例如tf.keras、eager execution、TensorFlow Lite、TensorFlow.js等。 总之,将TensorFlow 1.0转换为TensorFlow 2.0需要注意一些API的更改和新功能的引入。并且建议使用更现代化的特性和API,以获得更好的体验和性能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值