【新智元导读】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​www.tensorflow.org

但是,请注意,函数式 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​colab.research.google.com

原文:

Thread by @fchollet: "Are you a deep learning researcher? Wondering if all this TensorFlow 2.0 stuff you heard about is relevant to you? This thread is a crash co […]"​threadreaderapp.com


新智元·AI_era

每日推送 AI 领域前沿学术解读、AI 产业最新资讯

戳右上角【+ 关注】↗↗

喜欢请分享、点赞吧

lstm keras 权重 理解_Keras 作者:TF 2.0+Keras 深度学习研究你需要了解的 12 件事...相关推荐

  1. LSTM 之父发文:2010-2020,我眼中的深度学习十年简史

    作者 | Jürgen Schmidhuber 译者 | 刘畅.若名 出品 | AI科技大本营(ID:rgznai100) 作为LSTM发明人.深度学习元老,Jürgen Schmidhuber于2月 ...

  2. [转载] 使用Keras和TensorFlow 2.0建立深度学习模型对图像进行分类

    参考链接: Keras中的深度学习-建立深度学习模型 在本文中,我们将构建一个深度学习模型来对图像中的对象进行分类.为了构建卷积神经网络,我们将使用Kaggle提供的这个数据集.(https://ww ...

  3. keras faster物体检测_全网 | 深度学习目标检测算法(精选12篇)

    太多的公众号每天的文章是否让你眼花缭乱?刷了好多文章,发现大都是转来转去?今天我在全网公众号里为大家精选主题为深度学习目标检测算法的文章12篇,其中包括综述,R-CNN,SPP-Net,Fast R- ...

  4. 怎么装python的keras库_Keras教程:用Python进行深度学习的终极入门指南

    在这个循序渐进的Keras教程中,你将学习如何在Python中构建卷积神经网络! 事实上,我们将训练一个用于手写数字的分类器,它在著名的MNIST数据集上夸大了99%的准确度. 在开始之前,我们应该注 ...

  5. 使用keras为什么accuracy一直为0_TensorFlow 2.0+Keras 防坑指南

    TensorFlow 2.0是对1.x版本做了一次大的瘦身,Eager Execution默认开启,并且使用Keras作为默认高级API, 这些改进大大降低的TensorFlow使用难度. 本文主要记 ...

  6. LSTM长短记,长序依赖可追忆(深度学习入门系列之十四)

    摘要:如果你是一名单身狗,不要伤心,或许是因为你的记忆太好了.有时,遗忘是件好事,它让你对琐碎之事不再斤斤计较.然而每当自己记不住单词而"问候亲人"时,也确实气死个人.于是你懂得了 ...

  7. LSTM之父发文:2010-2020,我眼中的深度学习十年简史

    2020-02-23 15:04:22 作者 | Jürgen Schmidhuber 编译 | 刘畅.若名 出品 | AI科技大本营(ID:rgznai100) 作为LSTM发明人.深度学习元老,J ...

  8. 【算法大赛直播周】如何赋予机器更多“想象力”?《计算广告》作者刘鹏带你解密深度学习

    2020腾讯广告算法大赛虽然已于近日落下帷幕(点击回顾),但算法研习之路永无止境.为了更好地推动前沿技术的分享和交流,持续助力产学研融合落地,腾讯广告特邀三位大赛顶级评委开启"2020腾讯广 ...

  9. 基于keras的python实践_keras快速上手-基于python的深度学习实践_第8章_文字生成源代码...

    源代码如下,但质量较差 # -*- coding: utf-8 -*- #!/usr/bin/env python # coding: utf-8 # # 序列模型 # In[1]: import p ...

最新文章

  1. 对ListView滚动状态的监听
  2. 让互联网拥抱移动VR,三星将发布新版VR浏览器
  3. 一文读懂 HTTP/1HTTP/2HTTP/3
  4. flink 写kafka_网易云音乐基于 Flink + Kafka 的实时数仓建设实践
  5. SQL Server使用convert对datetime日期数据进行转换
  6. python连接数据库mysql错误1045_django 连接数据库出现1045错误的解决方式
  7. 十年架构师详解JVM运行原理
  8. 杭电2066一个人的旅行
  9. SAP License:BCS进阶第五篇-BCS合并现金流量表的实现
  10. keepalived实现LVS-DR模型的高可用
  11. VMWare Fusion 导入已有的虚拟机
  12. jwplayer.v7.1.4视频播放器的使用
  13. 抖音短视频去水印网址 视频消重后,火山还是鉴别出来了
  14. 计算机硬盘能影响速度吗,BitLocker对电脑硬盘性能的影响
  15. C语言指针用法完善篇
  16. 大数据时代,我们需要“被遗忘权”(转)
  17. 学习周报20200105 | CS224N
  18. 第三方支付(微信支付)支付流程分析
  19. 判断回文串,最长回文串方法
  20. 21世纪十大热门编程语言大集合,看你适合哪一种?

热门文章

  1. UI设计实用素材|iPhone样机模型(展示你的应用程序、网站或用户界面的完美方式。
  2. 建议电商美工收藏的素材网站
  3. 民航飞行学院计算机学院院长,中国民航飞行学院计算机学院领导及老师到访四川华迪开展教研活动...
  4. 获取byte的各个bit值_Java中获取一个Byte 的各个Bit的值
  5. CUDA、MPI和SU混编,MakeFile文件的编写
  6. 并行、并发和代码性能优化
  7. Linux开机启动过程(11):start_kernel 初始化(至setup_arch解析cmdline前)
  8. 硬盘主引导扇区汇编代码
  9. java中printreader类_Java基本字符流输入输出类的使用
  10. sklearn之Pipeline 估计器