0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用12个示例解释了使用TensorFlow 2.0 + Keras 的一些重要技巧

DPVg_AI_era 来源:lp 2019-03-15 09:27 次阅读

Keras 作者 François Chollet 今天发表了一系列推文,如果你使用 TensorFlow 2.0 + Keras 做深度学习研究,这里有你需要知道的一切。

TensorFlow 2.0 前几天新鲜出炉,Alpha 版可以抢先体验。新版本主打简单易用可扩展,大大简化了 API

Keras 作者 François Chollet 今天发表了一系列推文,用12个示例解释了使用TensorFlow 2.0 + Keras 的一些重要技巧。

如果你使用 TF 2.0 + Keras做深度学习研究,这里有你需要知道的一切。

Keras 作者 François Chollet

1)你需要知道的第一个类是 “Layer”。一个 Layer 封装了一个状态 (权重) 和一些计算 (在 “call” 方法中定义)。

2)“add_weight” 方法提供了创建权重的快捷方式。

3)最好在一个单独的 “build” 方法中创建权重,使用你的 layer 看到的第一个输入的形状来调用该方法。这种模式让我们不用必须指定’ input_dim ‘:

4)你可以通过在 GradientTape 中调用 layer 来自动检索该层权重的梯度。使用这些梯度,你可以手动或使用优化器对象来更新 layer 的权重。当然,你也可以在使用梯度之前修改它们。

5)由 layers 创建的权重可以是可训练的,也可以是不可训练的。是否可训练可以在 layer 的属性 “trainable_weights” 和 “non_trainable_weights” 中看到。比如,这是一个具有不可训练权重的层:

6)层可以递归地嵌套,以创建更大的计算块。每一层将跟踪其子层的权重 (包括可训练的和不可训练的)。

7)层会在前向传递时创建损失。这对于正则化损失特别有用。子层创建的损失由父层递归跟踪。

8)这些损失在每次向前传递开始时由顶层清除 —— 它们不会累积。“layer.losses” 总是只包含在 “最后一次” 前向传递时产生的损失。在编写训练循环时,你通常需要将这些损失累加起来使用。

9)TF 2.0 默认情况下是 eager。但是通过将计算编译成静态图,将能够获得更好的性能。静态图是研究人员最好的朋友!你可以通过将其包装在一个 tf.function 中来编译任何函数:

10)有些层,特别是 “BatchNormalization” 层和 “退 Dropout” 层,在训练和推理过程中会表现出不同的行为。对于这样的层,标准做法是在 “call” 方法中加入一个 “training”(boolean) 参数

11)有很多内置层是可用的,从 Dense 层到 Conv2D 层到 LSTM 层,再到 Conv2DTranspose 或 ConvLSTM2D。你要学会好好重用这些内置函数。

12)要构建深度学习模型,你不必总是使用面向对象编程。到目前为止,我们看到的所有层都可以按函数组合,就像这样 (我们称之为 “Functional API”):

函数式 API 往往比 subclassing 更简洁,并且还有其他优点。

了解关于 Functional API 的更多信息

https://www.tensorflow.org/alpha/guide/keras/functional

但是,请注意,函数式 API 只能用于定义层的 DAGs—— 递归网络应该定义为 “Layer” 子类。

在研究工作中,你可能经常发现自己混合匹配了 OO 模型和函数式模型。

以上,就是使用 TensorFlow 2.0 + Keras 来重新实现大多数深度学习研究论文所需要的全部内容!

现在让我们来看一个非常简单的例子:hypernetworks。

hypernetwork 是一个深度神经网络,它的权重由另一个网络 (通常较小) 生成。

让我们实现一个非常简单的 hypernetwork:我们将使用前面定义的 “Linear” 层,并使用它生成另一个 “Linear” 层。

另一个快速示例:以任何一种风格实现 VAE,可以是 subclassing,或者函数式 API。找到最适合你的方法吧!

subclassing

Functional API

最后,你可以在这个 Colab 笔记本中使用这些代码示例:

https://colab.research.google.com/drive/17u-pRZJnKN0gO5XZmq8n5A2bKGrfKEUg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1382

    浏览量

    60990
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119908
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60242

原文标题:Keras作者:TF 2.0+Keras深度学习研究你需要了解的12件事

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TensorFlow是什么

    ,TensorBoard 和 TensorServing 的软件。谷歌 research 博客列出了全球一些使用 TensorFlow 开发的有趣项目:Google 翻译运用了 TensorFlow
    发表于 07-22 10:14

    TensorFlow常用Python扩展包

    TensorFlow 能够实现大部分神经网络的功能。但是,这还是不够的。对于预处理任务、序列化甚至绘图任务,还需要更多的 Python 包。下面列出了一些常用的 Python 包:Numpy:这是
    发表于 07-28 14:35

    使用RTL8722DM运行 TensorFlow Lite Hello World 示例

    谷歌 TensorFlow 简介TensorFlow (TF) 是用于机器学习的大量拓展平台。它拥有
    发表于 06-21 15:48

    一些电磁标准的解释

    通用电磁兼容标准(EMC Standard)对照表目的,给予电源及相关电行业开发或测试人员参考,查找或引用更加方便。包括传导、辐射以及谐波。下面对常见的一些标准做一些对应解释,特别是针对在通用
    发表于 10-29 08:33

    RK3399Pro入门教程(4)从Tensorflow.Keras到RKNN

    graph_util2. 建立Keras模型和训练我们Tensorflow的官网首页代码,为了保存模型,需要点小修改:mnist = tf.k
    发表于 03-31 16:23

    keras内置的7常用的优化器介绍

    编译模型时需要如下两参数: “损失函数”(loss function),用来衡量网络的预测有多好。 “优化器”(optimize
    发表于 08-18 06:32

    keras顺序模型与函数式模型

    mnist的代码如下: 方式1:采用model.add 层层添加 import tensorflow as tf import tensorflow.keras as keras
    发表于 08-18 06:01

    keras可视化介绍

    keras的model.summary()方法 对于一些简单的模型,可以直接使用keras提供的model.summary()方法,如上讲的mnist模型,代码中: # 搭建好模
    发表于 08-18 07:53

    Keras搭建神经网络的般步骤

    1 keras是什么? Keras Python 编写的高级神经网络 API,它能够以 Te
    发表于 08-18 07:35

    KerasTensorFlow究竟哪个会更好?

    Keras 依然作为一个库,与 TensorFlow 分开,进行独立操作,所以仍存在未来两者会分开的可能性;然而,我们知道 Google 官方同时支持 KerasTensorFlow
    的头像 发表于 10-11 10:05 2.1w次阅读

    TensorFlowKeras哪个更好用?

    作为一个库,Keras 仍然可以单独使用,因此未来两者可能会分道扬镳。不过,因为谷歌官方支持 KerasTensorFlow,所以似乎不太可能出现这种情况。
    的头像 发表于 10-31 09:40 1.1w次阅读

    TensorFlow 2.0中关于Keras一些新功能和重大变化

    Keras有以下几大关键优点:用户友好、模块化、可组合、容易扩展,既适合新手,也适合专家。这些优点加起来。可以让学习、研究、开发、部署的工作流更加容易,效率更高。通过将 Keras 构建
    的头像 发表于 12-12 09:55 8269次阅读
    <b class='flag-5'>TensorFlow</b> <b class='flag-5'>2.0</b>中关于<b class='flag-5'>Keras</b>的<b class='flag-5'>一些</b>新功能和重大变化

    深入了解TensorFlow随附的此版Keras将能为您实现哪些功能

    也是 TensorFlow 集成 Keras 的主要设计目标,即让用户能够选择对自己更有用处的 Keras 组件,而无需采用整个框架。
    的头像 发表于 12-18 13:38 2609次阅读

    最新tf.keras指南,TensorFlow官方出品

    TensorFlow 1.x以静态图为主,网上主流的TF代码编写主要是面向过程的(函数为主),在引入tf.keras之后,TensorFlow官方就开始推荐tf.keras里各种面向对
    的头像 发表于 03-29 11:28 3937次阅读

    基于TensorFlowKeras的图像识别

    TensorFlowKeras最常见的用途之一是图像识别/分类。通过本文,您将了解如何使用Keras达到这一目的。定义如果您不了解图像识别的基本概念,将很难完全理解本文的内容。因此在正文开始之前
    的头像 发表于 01-13 08:27 377次阅读
    基于<b class='flag-5'>TensorFlow</b>和<b class='flag-5'>Keras</b>的图像识别