TensorFlow VS. PyTorch V2

此前,跨象乘云™ 发布过《TensorFlow VS. PyTorch》 —— 谷歌的 Tensorflow 与 Facebook 的 PyTorch 一直是颇受社区欢迎的两种深度学习框架。那么究竟哪种框架最适宜自己手边的深度学习项目呢?本文作者从这两种框架各自的功能效果、优缺点以及安装、版本更新等诸多方面给出了自己的建议。如果你在读这篇文章,那么你可能已经开始了自己的深度学习之旅。如果你对这一领域还不是很熟悉,那么简单来说,深度学习使用了「人工神经网络」,这是一种类似大脑的特殊架构,这个领域的发展目标是开发出能解决真实世界问题的类人计算机。为了帮助开发这些架构,谷歌、Facebook 和 U[……]

继续阅读

TensorFlow 2.0 构建和部署端到端的图像分类器

2019 年 3 月 6 日,谷歌在 TensorFlow 开发者年度峰会上发布了最新版的 TensorFlow 框架 TensorFlow 2.0 。新版本对 TensorFlow 的使用方式进行了重大改进,使其更加灵活和更具人性化。具体的改变和新增内容可以从 TensorFlow 的官网找到,本文将介绍如何使用 TensorFlow 2.0 构建和部署端到端的图像分类器,以及新版本中的新增内容,包括:

  • 使用 TensorFlow Datasets 下载数据并进行预处理
  • 使用 Keras 高级 API 构建和训练图像分类器
  • 下载 InceptionV3 卷积神经网络并对[……]

    继续阅读

TensorFlow 简介与概览 – Part 8/8

强化学习 (RL) 是一种框架,可以教导智能体如何以使奖励最大化的方式在现实世界中采取行动。我们将由神经网络完成的学习称为深度强化学习 (Deep RL)。RL 框架有三种类型:基于策略、基于值和基于模型。三者的区别在于神经网络需要学习的内容。如需了解更多详情,请观看 MIT 课程 6.S091 的 Deep RL 简介讲座。当我们需要作出一系列决策时,可以借助 Deep RL 在模拟环境或真实环境中应用神经网络。其中包括游戏操作、机器人、神经架构搜索等等。DeepTraffic 环境提供了教程与代码示例,可以让您快速地在浏览器中探索、训练和评估 Deep RL 智能体。

GitHub地址项目 GitH[……]

继续阅读

TensorFlow 简介与概览 – Part 7/8

生成对抗网络 (GAN)

GAN 是一种训练网络框架,已经过优化,可以通过特定表征生成新的真实样本。简单而言,其训练过程涉及两个网络。其中一个网络称为 生成器 (generator),它会生成新的数据实例并试图欺骗另一个网络,即判别器 (discriminator),后者会对图像的真伪进行分类。

在过去几年,GAN 出现了许多变体和改进,包括从特定类别生成图像的能力,以及将图像从一个域映射到另一个域的能力,而且所生成图像的真实度也有极大提升。TensorFlow 教程:如需 GAN 早期变体的示例,请参阅有关 条件GAN 和 DCGAN 的教程。

GitHub地址项目 GitHub 地址 – 条[……]

继续阅读

TensorFlow 简介与概览 – Part 6/8

自动编码器

自动编码器是其中一种更简单的 “无监督学习” 形式,其采用编码器 — 解码器架构,并学习生成输入数据的精确副本。由于编码表征比输入数据小得多,此网络被迫学习如何生成最有意义的表征。

其 Ground truth 数据来自输入数据,因此无需人工操作。换言之,此网络可自我监督。其应用包括无监督嵌入、图像降噪等。但最重要的是,其 “表征学习” 的基本思想是下个部分的生成模型与所有深度学习的核心。在这个 TensorFlow Keras 教程 中,您可以探索自动编码器在以下两方面的功能:

  1. 对输入数据进行降噪
  2. 在 MNIST 数据集中生成嵌入

[……]

继续阅读

TensorFlow 简介与概览 – Part 5/8

编码器 / 解码器架构

前 3 部分介绍的 FFNNCNNRNN 都只是分别使用密集编码器、卷积编码器或递归编码器进行预测的网络。这些编码器可以组合或切换,具体取决于我们尝试生成有用表征的原始数据类型。“编码器 — 解码器” 架构是一种更高层次的概念,此架构基于编码步骤而构建,通过对压缩表征进行上采样的步骤来生成高维输出,而不是进行预测。

请注意,编码器与解码器彼此之间可能大不相同。例如,图像描述生成 (image captioning) 网络可能采用卷积编码器(用于图像输入)和递归解码器(用于自然语言输出)。其应用包括语义分割、机器翻译等。请参阅 MIT 驾驶场景分割[……]

继续阅读

TensorFlow 简介与概览 – Part 4/8

递归神经网络 (RNN)

RNN 是具有循环的网络,因此具有 “状态记忆”。这种网络可适时展开,以成为共享权重的前馈网络。正如 CNN 可跨 “空间” 共享权重一样,RNN 可跨 “时间” 共享权重。这使其能够处理并有效表示序列数据中的模式。

我们已开发出 RNN 模块的许多变体(包括 LSTM 和 GRU),以帮助学习较长序列中的模式。其应用包括自然语言建模、语音识别、语音生成等。递归神经网络的训练颇具挑战性,但同时也让我们可以对序列数据进行一些有趣而强大的建模。利用 TensorFlow 生成文本 是我最喜欢的教程之一,因为只需几行代码便可完成一些事情:逐字生成合理文本。[……]

继续阅读

TensorFlow 简介与概览 – Part 3/8

卷积神经网络 (CNN)

CNN(又名 ConvNet)是一种前馈神经网络,其使用空间不变性技巧来有效学习图像中最常见的局部模式。举例而言,若图像左上方与右下方的猫耳拥有相同的特征,我们便可将其称为空间不变性。CNN 可跨空间共享权重,从而更高效地检测出猫耳及其他模式。

CNN 不是只使用密集连接层,而是使用卷积层(卷积编码器)。这些网络可用于图像分类、对象检测、视频动作识别,以及任何在结构上具备一些空间不变性的数据(例如语音音频)。

了解用于对 MNIST 数据集中的手写数字进行分类的 CNN 示例。我们利用影像变形技术创造梦幻般的精彩扭曲效果,并通过数据集之外生成的高[……]

继续阅读

TensorFlow 简介与概览 – Part 2/8

前馈神经网络 (FFNN)

FFNN 的历史可以追溯至 20 世纪 40 年代,只是一种没有任何循环的网络。数据以单次传递的方式从输入传递至输出,而没有任何之前的 “状态记忆”。从技术上讲,深度学习中的大多数网络均可被视为 FFNN,但 “FFNN” 通常指的是其最简单的变体:一种密集连接的多层感知器 (MLP)。密集编码器用于将输入上已经很紧凑一组数字映射至预测:分类(离散)或回归(连续)数据。

以下是一个用于预测波士顿房价的 FFNN 示例,属于回归问题:

GitHub地址项目 GitHub 地址[……]

继续阅读

TensorFlow 简介与概览 – Part 1/8

深度学习是表征学习,即通过数据自动生成有用的表征。我们表述世界的方式可以使复杂事物简单化,让人类及我们构建的机器学习模型能够容易理解。哥白尼于 1543 年发表的日心说模型。与先前以地球为中心的地心说模型不同,该模型将太阳置于 “宇宙” 的中心。在最佳情况下,深度学习让我们可以自动处理此步骤,无需哥白尼(即人类专家)即可完成 “特征工程” 过程:

从高层次来看,神经网络可以是编码器、解码器或二者的结合:

  • 编码器会在原始数据中找到模式,以生成简洁有用的表征
  • 解码器会利用这些表征生成高分辨率数据。所生成的数据是新示例或描述性知识

其余是一些巧妙方法,可帮助我们有[……]

继续阅读