全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2018-08-19_教程 | 一招教你使用 tf.keras 和 eager execution 解决复杂问题

您的位置:首页 >> 新闻 >> 行业资讯

教程 | 一招教你使用 tf.keras 和 eager execution 解决复杂问题 选自Medium 作者:Yash Katariya 机器之心编译 参与:乾树、王淑婷 本文作者利用 TensorFlow 的两个最新 API(tf.keras 和 eager execution)解决了四类复杂问题:文本生成、生成对抗网络、神经网络机器翻译、图片标注。文中对此进行了详细描述,并附上其 notebook 地址。 生成模型和序列模型总是令我着迷:它们提出的问题与我们初学机器学习时常遇到的问题不同。刚开始学习 ML 时,和很多人一样,我学的是分类和回归。这些可以帮助我们提出并回答以下问题: 图片里是猫还是狗?(分类) 明天有多大概率会下雨?(回归) 分类和回归是非常值得掌握的技能,并且几乎可以无限将这两者用于现实问题。但是,我们可能会提出其它类型的问题,这些问题与之前的十分不同。 能作诗吗?(文本生成) 能生成一张猫的图片吗?(生成对抗网络) 能翻译句子吗?(神经网络机器翻译) 能根据图片生成标题吗?(图片标注) 在暑期实习期间,我使用 TensorFlow 的两个最新 API(tf.keras 和 eager execution)开发了这些示例,以下是分享内容。希望你们能觉得它们有用,有趣! Eager execution 是一个由运行定义的命令式接口,一旦从 Python 调用,其操作将被立即执行。这使得入门 TensorFlow 变得更简单,也使研发更直观。 tf.keras 是一个高级 API,用于定义具有类似乐高积木的模型。我使用模型子类化(Model subclassing)实现了这些示例,它允许我们通过子类化 tf.keras 模型和定义自己的前向传播来建立完全可定制的模型。当启用 eager execution 时,模型子类化特别有用,因为前向传播可以被命令式地编写。 如果你还不了解这些 API,可以通过 tensorflow.org/tutorials 上的 notebook 来了解更多信息,其中包含最近更新的示例。 以下每个示例都是端到端的,并遵循类似的模式: 1. 自动下载训练数据。 2. 预处理训练数据,并创建 tf.data 数据集以便在输入管道中使用。 3. 使用 tf.keras 模型子类化 API 定义模型。 4. 使用 eager execution 训练模型。 5. 演示如何使用训练好的模型。 示例#1:文本生成 第一个示例是文本生成,我们用 RNN 生成与莎士比亚风格类似的文本。你可以通过下面的链接在 Colaboratory 上运行它(或者从 GitHub 下载它当做 Jupyter notebook)。代码在 notebook 中有详细解释。 示例 1 notebook:https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/generative_examples/text_generation.ipynb 鉴于莎士比亚著作颇丰,这个例子学会了生成与莎翁风格相似的文本: 在莎士比亚文集训练 30 个 epoch 后,notebook 生成的示例文本。 虽然大部分句子都没有意义(因为这个简单的模型还没有学会语言的含义),但令人印象深刻的是,大多数单词拼写正确,并且它生成的剧本结构看起来与原始剧本的结构相似。(这是一个基于字符的模型,我们训练它的时间不长——但它已经成功地从零开始学会了这两件事)。只要你想,更改一行代码就可以更改数据集。) 想要更进一步了解 RNN,可以去看 Andrej Karpathy 的优秀文章——《The Unreasonable Effectiveness of Recurrent Neural Networks》。如果你想了解更多关于用 Keras 或 tf·Keras 实现 RNN 的信息,我们推荐 Francois Chollet 的 notebook。 Francois Chollet 的 notebook:https://github.com/fchollet/deep-learning-with-python-notebooks 示例 #2:DCGAN 在这个示例中,我们用 DCGAN 生成手写数字。生成对抗网络(GAN)由生成器和判别器组成。生成器的工作是生成逼真的图像,以欺骗判别器。判别器的工作是在真图像和伪图像(由生成器生成)之间进行分类。下面看到的输出是在使用《Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks》一文中所述的网络架构和超参数训练生成器和判别器 150 个 epoch 之后生成的。 示例 2 notebook:https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/generative_examples/dcgan.ipynb 在 150 个 epoch 中每 10 个 epoch 生成一次图像的 GIF。你可以在 notebook 中找到生成这种 GIF 的代码。 示例#3:注意力神经网络机器翻译 这个示例训练模型将西班牙语句子翻译成英语句子。模型训练好后,你可以输入西班牙语,例如「?todavia estan en casa?」,并返回英文翻译:「are you still at home?」 下图是注意力图。它显示了翻译时,输入句子的哪些部分会引起模型的注意。例如,当模型翻译「cold」这个词时,它正看着「mucho」,「frio」,「aqui」。我们使用 tf.keras 和 eager execution 从零开始实现 Bahdanau Attention,详细解释在 notebook 中。你还可以将此实现用作实现自定义模型的基础。 示例 3 notebook:https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/nmt_with_attention/nmt_with_attention.ipynb 上述翻译的注意力图。 示例 #4:注意力图像标注 在此示例中,我们训练模型用以预测图像的标题。我们还生成了一个注意力图,它显示了模型在生成标题时所关注的图像部分。例如,当模型预测单词「冲浪板」时,它会聚焦在图片中的冲浪板附近。我们使用 MS-COCO 数据集的子集训练该模型,该数据集将由 notebook 自动下载。 示例 4 notebook:https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/generative_examples/image_captioning_with_attention.ipynb 图像的预测标题。 上图中每个单词的注意力图。 后续 要了解有关 tf.keras 和 eager 的更多信息,请密切关注 tensorflow.org/tutorials 以获取更新内容,并定期查看此博客和 TensorFlow 的官方推特。 原文链接:https://medium.com/tensorflow/complete-code-examples-for-machine-translation-with-attention-image-captioning-text-generation-51663d07a63d 本文为机器之心编译,转载请联系本公众号获得授权。 ?------------------------------------------------ 加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com 投稿或寻求报道:content@jiqizhixin.com 广告 & 商务合作:bd@jiqizhixin.com

上一篇:2022-11-02_纸媒已死?创意不会! 下一篇:2024-06-09_大模型的高考数学成绩单:及格已经非常好了

TAG标签:

18
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价