首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成的对抗性网络可以在任何嵌入式/边缘设备上运行吗?

生成的对抗性网络可以在任何嵌入式/边缘设备上运行吗?
EN

Data Science用户
提问于 2018-08-27 07:24:43
回答 2查看 881关注 0票数 2

我使用DCGAN ( Deep Convolution GAN )生成图像。但是,我想在嵌入式设备上运行它,比如Intel MovidiusJetson

但是,在浏览了几篇互联网文章时,我知道嵌入式设备只用于深入学习的情况下进行推理。

我有几个问题:

  1. GAN基本上是一个生成网络。怎么能有推论呢?对于GAN来说,推理和训练是否是一回事?
  2. 它(GAN)能在嵌入式设备上运行吗?内存是一个真正的问题吗?
EN

回答 2

Data Science用户

发布于 2018-08-27 11:52:57

1. 生成对抗性网络 (GANs)

简介

在训练阶段,GAN模型本质上使两个神经网络相互竞争:发生器和描述器。和往常一样,我们从训练数据集开始,例如图像。然后:

  • 描述网络是给定的图像,无论它们是否是真实的图像,都必须对它们进行判断。
  • 生成器学习如何生成新的图像,目的是欺骗鉴别者认为图像是真实的。

下面是本文的一个简单草图:

因为两个网络都在为相同的度量(描述网络的丢失)而斗争,这个想法也被描述为一个极小的问题。鉴别器正在最小化它自己的错误,而生成器正在最大限度地减小相同的错误。

更多资源:

要想看甘斯从哪里开始,先略读一下伊恩·古德费罗的论文。关于一个不错的视频介绍:

2.用GANs

进行推理

利用上述过程,我们训练了两个神经网络。执行推理实际上可能意味着使用其中之一(或两者的组合,我想)。在您的情况下,您似乎只需要生成器部分:

我正在使用DCGAN (深层卷积GAN )来生成图像。

这意味着您将使用经过训练的生成器模型,并通过提供不同的随机噪声状态作为输入来生成随机样本(如上图所示)。希望您的发电机在培训期间的学习分布将有足够的多样性,以产生不同的样本。如果它最终总是产生相同的图像,给定不同的随机噪声样本作为输入,您将看到一个模式崩溃的例子(参见上面的链接视频)。

3.嵌入式设备上的

为了得到一个真正有实际用途的生成器,您需要进行大量的培训,并举例说明。最先进的模型使用像ImageNet这样的图像数据库,其中包含超过1000个类别的100万幅图像.

推理:

为了从无到有地进行这样的培训,我真的不认为你会在嵌入式或微型设备上有任何运气,比如Jetson。但是,要执行推断,您可能可以这样做。这只需要将经过预先训练的生成器模型加载到设备上(以及所需的深度学习框架,例如Tensorflow)。这可能是可行的,我见过有人设法做到这一点--在保守的卷积网络中,每秒大约有1张图像的帧速率。

内存约束只是计算本身的一个问题。在嵌入式设备上,这可能是一个痛苦的缓慢过程,但如果您能够优化网络和培训过程的许多部分,则可以解决问题。例如,你可以将图像压缩到更小的尺度上,使用最后的输出层,它有较少的神经元,甚至可以在计算中使用更少的浮点精度。参见本论文关于8位的培训(相对于标准的32位).还有一些较小版本的知名车型,如蒂尼-尤洛

培训:

你可能采取的另一种边缘培训(在线培训)方法是从转移学习开始。您可以选择一个已经接受过类似于您自己任务的培训的模型,您将不得不在开源项目中搜索它。然后可以将该模型加载到嵌入式设备上,并使其像用于推理一样工作,但是我们需要进行培训。我们要做到这一点,保持来自预先训练的模型的重量,冻结大部分的层,只允许最后一或两个层实际上与你的新的边缘数据微调。

票数 1
EN

Data Science用户

发布于 2018-08-27 08:07:43

GAN基本上是一个生成网络。怎么能有推论呢?对于GAN来说,推理和训练是否是一回事?

GANs本质上是两个串联的神经网络。一种叫做生成器,另一种叫做鉴别器。您需要对这两个网络进行顺序训练,即您训练生成器,然后训练鉴别器(而不是同时进行)。GAN的推理是通过判别器网络进行的,该网络对发生器的输出进行标记。我发现这个职位很有帮助,我希望你也能找到!

它(GAN)能在嵌入式设备上运行吗?内存是一个真正的问题吗?

好吧,如果你的嵌入式资源能够同时运行两个神经网络,那就没问题了。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/37470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档