tensorflow2.0新特性

Tensorflow2.0相比于以往版本,有着极大的区别;最明显的区别可以用三字词来概括:更简单,更易用,更强大。

接下来让我们一起见证下不一样的地方吧!

一、使用tf.data加载数据

使用tf.data创建的输入管道读取训练数据;支持从内存(Numpy)方便地输入数据;

二、使用tf.keras构建,训练和验证模型,或使用Premade来验证模型

可以直接标准的打包模型(逻辑回归,随机森林),也可以直接使用(tf.estimator API)

如果不想从头训练模型,可以使用迁移学习来训练一个使用TensorflowHub模块的Kerasa或Estimator模型。

三、取消了会话

例子:计算两个数乘积的平方根

2.0 前版本

 1 import tensorflow as tf
 2
 3 #variables
 4 x=tf.placeholder(tf.float32)
 5 y=tf.placeholder(tf.float32)
 6
 7 #graph
 8 mean=tf.sqrt(x*y)
 9
10 #run the graph
11 with tf.Session() as sess:
12      res = sess.run(mean,feed_dict={x:2,y:8})
13      print(res)

2.0版本

1 import tensorflow as tf
2
3 #define the inputs
4 x=2.0
5 y=8.0
6
7 #define graph
8 mean=tf.sqrt(x*y)
9 tf.print(mean)

四、使用快速执行(Eager execution)运行和调试,然后使用tf.function

定义一个全局函数

 1 import tensorflow as tf
 2
 3 #define the inputs
 4 x=2.0
 5 y=8.0
 6
 7 @tf.function
 8 def geometric_mean(x,y):
 9      mean=tf.sqrt(x*y)
10      return mean
11
12 mean=geometric_mean(x,y)
13 tf.print(mean)

整合了2.0之前的各种复杂的函数接口,统一了形形色色的编译语言,API满足Keras接口标准

 1 impot tensorflow as tf
 2
 3 (train_images,train_labels),(test_images,test_labels) = tf.keras.datasets.mnist.load_data()
 4
 5 model = tf.keras.Sequential([
 6           tf.keras.layers.Flatten(input_shape=(28,28)),
 7           tf.keras.layers.Dense(512,activation=tf.nn.relu),
 8           tf.keras.layers.Dense(10,activation=tf.nn.softmax)])
 9
10 model.compile(optimizer=‘adam‘,
11                      loss=‘sparse_categorical_crossentropy‘,
12                      metrics=[‘accuracy‘])
13
14 model.fit(train_images,train_labels,epochs=5)

支持与Tensorboard的调用交互

 1 import tensorflow as tf
 2
 3 data_train,_ = tf.keras.datasets.mnist.load_data()
 4 dataset=tf.data.Dataset.from_tensor_slices(data_train)
 5 dataset=dataset.shuffle(buffer_size=60000)
 6 dataset=dataset.batch(32)
 7
 8 model=tf.keras.Sequential([
 9            tf.keras.layers.Flatten(input_shape=(28,28)),
10            tf.keras.layers.Dense(512,activation=tf.nn.relu),
11            tf.keras.layers.Dense(10,activation=tf.nn.softmax)
12 ])
13
14 model.compile(optimizer=‘adam‘,
15                       loss=‘sparse_categorical_crossentropy‘,
16                       metrics=[‘accuracy‘])
17
18 tb = tf.keras.callbacks.Tensorboard(log_dir=‘./checkpoints‘)
19 model.fit(dataset,epochs=5,callbacks=[tb])

五、使用分发策略进行分发训练

大型ML训练任务,分发策略API可以在不更改定义的情况下,轻松在不同的硬件配置上分发和训练模型。TF支持一系列硬件加速器,GPU,TPU

六、导出到SavedModel

Tensorflow将在SavedModel上作为Tensorflow服务,Tensorflow Lite,Tensorflow.js,Tensorflow Hub等交换格式进行标准化;

原文地址:https://www.cnblogs.com/jimchen1218/p/11647926.html

时间: 2024-10-07 22:53:14

tensorflow2.0新特性的相关文章

tensorflow2.0 新特性小练习

基于tf2.0 对Kaggel Google street view characters classify 项目练手, 熟悉一下tf2.0的新特性 下载下来kaggle的数据集如下: 所有训练数据在train文件夹中, labels在trainLabels.cvs文件中, label文件格式如下: 分别每个label对应其图片的名称 首先对数据进行预处理 总共有61个类别从a-z, A-Z, 0-9等,代码如下: from __future__ import absolute_import,

Day07 jdk5.0新特性&Junit&反射

day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装MyEclipse 先安装了JDK ? MyEclipse介绍 ? MyEclipse是Eclipse的一个插件: MyEclipse是需要花钱的: MyEclipse官网不在欢迎中国人登录: ? MyEclipse使用 ? 1 创建项目 选择工作空间: 工作空间路径不能有空格和中文: 工作空间以班名

Atitit. C#.net clr 2.0  4.0新特性

Atitit. C#.net clr 2.0  4.0新特性 1. CLR内部结构1 2. CLR 版本发展史3 3. CLR 2.0 3 4. CLR 4 新特性 概览4 4.1.1.  托管与本地代码的互操作5 4.1.2.    垃圾回收6 4.1.3.    代码约定6 4.1.4.    Corrupted state exception6 4.1.5.     新的安全模型7 4.1.6.     同一个进程,多个CLR7 4.1.7.     基本类库7 5. CLR最新发展8 6

day07 MyEclipse 安装 jdk5.0 新特性

1.myeclipse的安装和使用 * eclipse:是一个免费的开发工具    * myeclipse:是一个收费的插件,破解myeclipse,        ** 安装目录的要求: 不能有中文和空格        ** 安装完成之后,选择一个工作空间 ,这个工作空间不能有中文和空格    * 破解myeclipse        ** 运行run.bat文件,但是运行之前,必须要安装jdk,通过配置环境变量 * myeclipse的使用        * 创建一个工程          

AFNetworking 2.0 新特性讲解之AFHTTPSessionManager

AFNetworking 2.0 新特性讲解之AFHTTPSessionManager (2014-02-17 11:56:24) 转载▼     AFNetworking 2.0 相比1.0 API 接口改动还是很大的. 其中一个便是 AFURLSessionManager,当然如果你不太熟悉,或者为了兼容低版本,你依然可以选择AFHTTPRequestOperationManager,AFURLSessionManager是基于 NSURLSessionConfiguration(IOS 7

Servlet 3.0 新特性详解

转自:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性详解 张 建平2010 年 4 月 23 日发布 WeiboGoogle+用电子邮件发送本页面 6 Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署.其

android 7.0 新特性 和对开发者的影响

android 7.0新特性 - jiabailong的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/jiabailong/article/details/52411300 android 7.0对开发者会有哪些影响 - jiabailong的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/jiabailong/article/details/52411353 android 7.0 多窗口及新特性demo - jiabail

C#6.0新特性

C#6.0新特性怎么用 系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 前文提到过一个神器叫Resharper,功能强大,编码效率和代码质量那是蹭蹭的涨,但是神器的最大问题是太耗费资源了,每次系统提示内存不足的时候,那叫一个纠结啊.因此每次新的VS发布的时候都情不自禁的查看是否增强编辑功能,情不自禁的讨论一番,这次VS2015也不例外. 去年微软放出Roslyn的时候,微软就曾经放出过一个“尝鲜”版的VS编辑增强功能,恰恰就是重构(reflector),话说这

ASP.NET MVC—1、前期知识储备(C#3.0新特性)

在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特性将会大大的提高我们的开发效率,同时,在MVC项目中你将到处可以看到C#3.0新特性的身影. C#3.0新特性 自动属性 隐式类型 var 对象初始化器与集合初始化器 匿名类 扩展方法 Lambda表达式 自动属性 这个概念很简单,其简化了我们在.NET的时候手写一堆私有成员+属性的编程方式,我们只需要使用如下方式声明一个属性,编译器会自动生成所需的成员变量