文章目录

  • TensorFlow 2.0 preview
  • TensorFlow 2.0 上线
  • 市场占有率
    • 全球情况
    • 中国概览
  • TensorFlow与PyTorch区别
  • TensorFlow2.0新特性
  • 主要变化简要总结
  • 1.0到2.0过渡
    • 自动过渡
    • 兼容方面
  • 小结
  • 参考文献

TensorFlow 2.0 preview

关于TensorFlow 2.0 preview,在谷歌开源战略师 Edd Wilder-James 曾将公开的一封邮件就有介绍,TensorFlow 2.0 预览版将在今年正式发布,并称其是一个重大的里程碑。将会把重点放在易用性上,而 Eager Execution 将会是 TensorFlow 2.0 的核心功能。

注:“Eager Execution”是一个命令式、由运行定义的接口,一旦从 Python 被调用可立即执行操作,这使得
TensorFlow 的入门变得更简单,也使得研发工作变得更直观。

TensorFlow 2.0 上线

TensorFlow 2.0 preview终于上线了,看来稳定版距离我们也不会太远——按照官方说法会是今年的第一个季度。
谷歌表示,在过去几年里,TensorFlow 增加了很多组件。通过 TensorFlow 2.0 版本的大幅度重建,这些功能将被打包成为一个综合平台,支持从训练到部署的整个机器学习工作流程。下图简要展示了 TensorFlow 2.0 的新架构:

Note:虽然上图的训练部分侧重 Python API,但是 TensorFlow.js 也支持训练模型。TensorFlow 2.0 对其他语言也有不同程度的支持,包括 Swift、R 语言和 Julia。

市场占有率

全球情况

2.0发布会还把TensorFlow目前的家底透露了一遍:目前TF在全球已经有超过4100万的下载次数,社区有超过1800多个贡献者。

发布会现场展示一张全球地图,但是没有透露中国社区的情况,这怎么可以?

官方图

中国概览

下面是我用中文搜索引擎–百度指数统计通过搜索量数据来侧面观察下两个主流深度学习框架tensorflow 与pytorch的变化,得到的结果如下图:


上图是进一年以来国内的深度学习两个主流框架tensorflow 与pytorch之间的对比,很明显的可以看出
tensorflow远胜于pytorch.尤其在有TF2.0消息公布后,搜索指数差距拉大了。

人群属性上来说20~29以及 30-39之间的人群来说,年轻化的人群更倾向于pytorch,老程序员更倾向于tensorflow。

TensorFlow与PyTorch区别

  1. 安装环境
    首先在系统上的支持:all in . 不过值得注意的是在2018Pytorch v0.4.0支持windows平台的。

  2. CPU和GPU
    TensorFlow 有针对的CPU和GPU安装模块,而 PyTorch并不像TensorFlow一样已经指定好CPU和GPU,如果在项目中想要同时支持GPU和CPU,将会产生更多代码。

  3. 安装过程
    基于Anaconda 的两个深度学习模块都可以直接通过Pip来安装。

  4. 是否适合新手
    TensorFlow 1.x与 PyTorch对比来说,个人认为PyTorch好些,但是在tensorflow 2.0发布后根据其新特性,Tensorflow 2.0 将于PyTorch不相上下。

下面是具体一些方面的对比:
PyTorch与TensorFlow 1
例如要计算 1 + ½ + ¼ + ⅛ + … ,使用 PyTorch 的代码明显比 TensorFlow 简单:

后来从 TensorFlow 1.4 开始,可以选择启动 eager 模式。

TensorFlow 2.0, eager execution 是默认的,不需要启用它:

可以发现eager 模式和 PyTorch 一样简单.

  1. 效果上
    个人认为针对不同需求、不同算法选择不同,没有绝对的好与不好。

TensorFlow2.0新特性

下面我们具体来看下2.0版本的新特性:2.0版本具有简易性、更清晰、扩展性三大特征,大大简化API;提高了TensorFlow Lite和TensorFlow.js部署模型的能力;

TensorFlow2.0 Alpha概括一下即:

  • 更易用:

诸如tf.keras等高级API将更易于使用;并且Eager execution将成为默认设置。

  • 更清晰:

删除了重复的功能;不同API的调用语法更加一致、直观;兼容性更加完善。

  • 更灵活:

提供完整的低级API;可在tf.raw_ops中访问内部操作;提供变量、checkpoint和层的可继承接口。

主要变化简要总结

  • API清理
    许多API 在TF 2.0中消失或移动。一些主要的变化包括删除tf.app,tf.flags与 tf.logging,支持开源的 absl-py(Google自己的Python代码库)。

  • Eager Execution 将成为核心功能

    可能 TensorFlow 2.0 最明显的改变就是将 Eager execution 作为默认优先模式。这表明任何运算在调用后就会立即运行,我们不再需要预先定义静态图,再通过「tf.Session.run()」执行图的各个部分。

    # TensorFlow 1.Xoutputs = session.run(f(placeholder), feed_dict={placeholder: input})# TensorFlow 2.0outputs = f(input)
  • 代码风格以 Keras 为主

很多函数如 optimizer,loss,metrics 会统合到 Keras 中

  • 支持更多的平台和语言

1.0到2.0过渡

自动过渡

关于代码转换:从TensorFlow1.0到2.0过渡我们使用 pip 安装 TensorFlow 2.0 时,系统会自动添加 tf_upgrade_v2(项目地址) ,它可将现有的 TensorFlow Python 代码转换为 TensorFlow 2.0 代码。

#使用方法:
!tf_upgrade_v2# 选择 input file,输出 output file
tf_upgrade_v2 --infile foo.py --outfile foo-upgraded.py# 将整个目录进行变换
tf_upgrade_v2 --intree coolcode --outtree coolcode-upgraded

兼容方面

为确保TensorFlow 2.0仍支持您的代码,升级脚本包含一个compat.v1模块。该模块替换TF
1.x符号tf.foo,与等效tf.compat.v1.foo参考一样。虽然兼容性模块很好,但我们建议您手动校对替换并将其迁移到tf.命名空间中的新API,而不是tf.compat.v1.

由于TensorFlow
2.x模块已弃用(例如,tf.flags和tf.contrib),因此切换到compat.v1某些无法解决更改。升级此代码可能需要使用其他库(例如absl.flags)或切换到tensorflow
/ addons中的包。

  以上来源于官网

小结

TensorFlow 2.0将原有的一个非常强大非常成熟的深度学习库进行了简化,重点是以keras为主,不知大家是否了解keras,根据官方标语,它是“为人类设计,不是为机器设计的API”。因此他在入门方面将大大优化, 如果你有以下需求,那么TensorFlow是一个很好的选择:

  • 开发需要部署在移动平台上的模型
  • 想要各种形式的丰富的学习资源(TensorFlow开发课程比较多)
  • 想要或需要使用Tensorboard
  • 需要大规模的分布式模型训练

PyTorch仍然是一个年轻的框架,但其发展速度越来越快。如果你有以下需求,它可能会比较适合你:

  • 小规模项目的快速原型开发
  • 用于研究

参考文献

https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/effective_tf2.md
https://tensorflow.google.cn/
https://www.youtube.com/watch?v=WTNH0tcscqo&t=304s

TensorFlow2.0 问世,Pytorch还能否撼动老大哥地位?相关推荐

  1. Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch

    Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch 能够灵活地调用各种语言模型,一直是 NLP 研究者的期待.近日 HuggingFace 公司开源了最新的 Tra ...

  2. internetreadfile读取数据长度为0_【完结】TensorFlow2.0 快速上手手册

    大家好,这是专栏<TensorFlow2.0>的第五篇文章,我们对专栏<TensorFlow2.0>进行一个总结. 我们知道全新的TensorFlow2.0 Alpha已经于2 ...

  3. 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization

    <<小白学PyTorch>> 扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积.激活.初始化.正则 扩展之Tensorflow2.0 | 20 TF ...

  4. 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积、激活、初始化、正则...

    [机器学习炼丹术]的学习笔记分享 <<小白学PyTorch>> 扩展之Tensorflow2.0 | 20 TF2的eager模式与求导 扩展之Tensorflow2.0 | ...

  5. 【小白学PyTorch】扩展之Tensorflow2.0 | 20 TF2的eager模式与求导

    [机器学习炼丹术]的学习笔记分享 <<小白学PyTorch>> 扩展之Tensorflow2.0 | 19 TF2模型的存储与载入 扩展之Tensorflow2.0 | 18 ...

  6. Tensorflow2.0——新世界的大门

    由于框架的持续改善与更新,目前是一个比较好的机会来通过Tensorflow入门深度学习. 那些年追过的编程语言和框架 犹记得十年前刚刚接触编程的时候,我还是一个懵懂的少年,在计算机的世界里跌跌撞撞.为 ...

  7. mybatis-plus对datetime返回去掉.0_华为AI认证-TensorFlow2.0编程基础

    参考<HCIA-AI2.0培训教材><HCIA-AI2.0实验手册> 认证要求: 了解TensorFlow2.0是什么以及其特点 掌握TensorFlow2.0基础和高阶操作方 ...

  8. TensorFlow2.0 系列开篇: Windows下GPU版本详细安装教程

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 [导读]今年三月谷歌在TensorFlow开发者峰会上宣布TensorFlow 2.0 ...

  9. tesseract4.0.0 中文语言包_一份TensorFlow2.0中文教程

    近两个月,网上已经出现了大量 TensorFlow 2 0 英文教程.在此文章中,本文为大家推荐一个持续更新的中文教程,以便大家学习.来源:机器之心 今年 3 月份,谷歌在 Tensorflow De ...

最新文章

  1. 分享:Arcadia 0.12.1 发布,Ruby 集成开发环境
  2. 数据蒋堂 | JOIN延伸 - 维度查询语法
  3. oracle管道化表函数
  4. 如何解决并发的问题(SQL锁的使用)
  5. 换硬币c语言编程_如何才能成为编程高手?别人都不告诉你的东西,我来说给你听...
  6. php 获取所有下周1,用php获取本周,下周,本月,下月,本季度日期(摘)
  7. dataframe的重设index
  8. Java集合—哈希(hash)表
  9. mysql+encode+decode+错误_mysql decode encode 乱码问题
  10. Linux网络协议栈(二)——套接字缓存(socket buffer)
  11. sprint冲刺计划第三天团队任务
  12. 【R】语言第五课----画图
  13. vim关于python的自动补全插件
  14. Java支持的编码格式
  15. Java Web开发后端常用技术汇总
  16. 计算机视觉/图像处理领域相关研究机构梳理
  17. Predicting Ship T rajectory Based on Neural Networks UsingAIS Data
  18. 真实的拼多多:我们统计了56款爆品 发现一个真相……
  19. openCV—converTo()用法
  20. python爬取豆瓣书籍_Python 爬取豆瓣读书标签下的书籍

热门文章

  1. 网络故障:本地连接受到限制或者是有个黄色的叹号,默认网关是0.0.0.0
  2. CryptoPunks这样像素艺术为什么能依然流行?
  3. C# Winform中使用 IHttpClientFactory的步骤介绍
  4. Eclipse常用热键介绍(zt)
  5. 如何给Eclipse设置背景图片
  6. 运筹说 第7期|重磅!学习运筹学不可不看的期刊大全!
  7. ES6学习笔记(字符串扩展)
  8. oracle以查询多括号报错,oracle点滴积累
  9. obs可以装手机吗?_iphonexs max可以装两个微信吗
  10. java---并查集算法_食物链(每日一道算法2022.8.17)