【Tensorflow2.0】3、 tf.keras介绍

2024-05-30 18:32
文章标签 介绍 tf keras tensorflow2.0

本文主要是介绍【Tensorflow2.0】3、 tf.keras介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、keras结构概述
    • 二、Layer 类说明
      • Layer层可以执行的功能
    • Layer不具有的功能

本文将介绍tf.kears API的使用方法以及它的实现方法,主要参考keras作者对keras的 介绍(需要科学上网)。包括:

  • Keras Architecture keras的结构
  • Layers 和 Models 两个类
  • 函数式模型 functional models
  • 函数式模型的特征 features to functional models
  • 训练和推理 Training & Inference
  • 损失函数和性能评价指标 losses & metrics
    以上部分写英文是为了看tensorflow官网时方便对应中英文

一、keras结构概述

主要包括keras的子模块和类。

Engine(模型定义和推理,model define & execution) 基本类:
  • 基础类Layer:是定义各种layer的基础
  • 基础类Network:定义网络结构
  • 基础类Modle:Network+training/eval loops
  • 基础类Sequential:序列模型是Model的一种
Layers:
  • 各种Layer的子类subclasses
Losses,Metrics:
  • 基础类Metric
  • 基础类Loss
  • 各种Metric & Loss的子类,可用于不同的需求
回调callbacks:
  • 基础类Callback
  • 各种Callback的子类,可用于不同的需求
优化器Optimizers:
  • 基础类Optimizer
  • 各种Optimizer的子类,可用于不同的需求
正则化Regularizers,Constraints

以下主要说明Engine,Losses,Metrics,其它部分简单介绍。其中任何一个内容都可以讲好向章书的内容,所以我们只关注最重要的信息。

二、Layer 类说明

Layer层可以执行的功能

1、Computation from a batch of inputs to a batch of outputs
  • Works in eager execution and graph execution
  • Supports a training mode and an inference mode
  • Supports masking(for time series and missing features)

Layer是keras API中的核心,是构建基它内容的基础,所以keras的所有内容基本上就是Layer。Layer有许多作有,所以内建了大量的features,它将作为一个容器来执行一些运算,把batch的输入数据转换成batch的输出。所有的内建层都支持eager execution和graph execution这两种模式,但用户自定义的层只支持eager模式,有些层只支持eager模式比如recursive layer,SEMs。另外每一层有两种状态训练状态和推理状态,比如dropout和batchnorm层,每一层会记忆timesteps和其它相关状态来选择切换状态,这种适用于sequence序列处理。

2、Manage state(trainable weights, non trainable weights)
  • 管理那些参数是可训练的,那些是不可训练由人来定义的。
3、Tracks losses &metrics(can be created during ‘call’),and update than can be disabled on demand
  • 自动跟踪记录损失值和相关的评价指标
4、“Type checking”
  • 调用一个层的时候,自动检查数据类型是否正确
  • 支持静态形状推理,可帮助用户检查数据形状是否正确
5、Can be frozen or unfrozen(for fine-tuning,transfer learning ,GANS)
  • 可以固化参数使其保持不变,或解固化。因化对于transfer learning之类的很有用。
6、Can be serialized/deserized(configuration-only) or saved/loaded(weight values)
  • 模型的保存与加载
7、可以用来构建模型(Functional APi),函数式编程
8、(soon)即将支持混合精度mix precision:
  • 将来会内建混合精度

Layer不具有的功能

1、不支持计算梯度Gradients(under consideration)
  • 层不支持反向传播和计算梯度,但开发人员正在考虑加上这个功能,加一个gradient的方法
2、不支持较底层的配置设置(low level api)\
  • 比如设备配置(device placement)
3、不支持分布式计算
  • 不包括特定的分布逻辑
4、只支持batchwish的计算
  • 任何张量tensor不是以N 个样本开头和以N个样本结束,都不支持,也就是说要有N个samples输入,就要有N个sample输出,没有输入或没有输出的都不能用Layer
5、“Type checking ”
  • no datasets,no non-batch computation,no output-less or input-less processing
    也就是说不能没有数据,不能是非batch的计算,不能少输出或少输入(看到7分16秒)

最长用的layer

class Linear(tf.keras.layers.Layer):def __init__(self,units=32,input_dim=32):super(Linear,self).__init__()self.w=tf.Variable(initial_value=tf.random_normal_initializer()(shape=(input_dim,units)),trainable=True)self.b=tf.Variable(initial_value=tf.zeros_initializer()(shape=(units,)),trainable=True)def call(self,inputs):return tf.matmul(inputs,self.w)+self.bx = tf.ones((2,2))linear_layer = Linear(4,input_dim=2)
#linear_layer.trainable_weights==[w,b] #自动加入到trainable_weights里
y = linear_layer(x)

这篇关于【Tensorflow2.0】3、 tf.keras介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1016698

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一