是否可以在 caffe 或 tensorflow 中并行 运行 cnn 中的每一层?
Is it possible to run each layer in a cnn parallely in either caffe or tensorflow?
我想 运行 并行训练 CNN 的每一层以减少前向传播期间的计算时间(基本上我想 运行 CNN 用于涉及相机的实时应用程序没有对 FPS 的影响太大了)。我将为每一层保留一个输入队列和一个输出队列。每层都可以处理来自输入层的 blob 并将其转储到输出层(这在逻辑上可以并行完成)。每层的输出队列将作为下一层的输入队列。然后我将从最后一层的输出队列(它将是一个二进制标签)收集所有输出并处理它们。所以我的问题是,是否可以 运行 在 Caffe 或 Tensorflow 中并行地实现 CNN 的每一层。
不知道TF。
关于咖啡——这听起来像是个坏主意。在层之间放置队列和同步机制只会减慢你的速度(特别是如果你 运行 在 GPU 上并通过 CPU 构造同步)。 Caffe 旨在按顺序执行前向传递并快速执行。为什么您期望并行性可以帮助您 运行 更快?
使用 Tensorflow,您可以指定 "device placement",因此对于图表中的每个操作或操作组,您可以说明在哪个 GPU 上 运行,例如,如果您有多个 GPU。有关如何在 GPU 上进行操作的示例代码,请参阅 this tutorial。
我想 运行 并行训练 CNN 的每一层以减少前向传播期间的计算时间(基本上我想 运行 CNN 用于涉及相机的实时应用程序没有对 FPS 的影响太大了)。我将为每一层保留一个输入队列和一个输出队列。每层都可以处理来自输入层的 blob 并将其转储到输出层(这在逻辑上可以并行完成)。每层的输出队列将作为下一层的输入队列。然后我将从最后一层的输出队列(它将是一个二进制标签)收集所有输出并处理它们。所以我的问题是,是否可以 运行 在 Caffe 或 Tensorflow 中并行地实现 CNN 的每一层。
不知道TF。
关于咖啡——这听起来像是个坏主意。在层之间放置队列和同步机制只会减慢你的速度(特别是如果你 运行 在 GPU 上并通过 CPU 构造同步)。 Caffe 旨在按顺序执行前向传递并快速执行。为什么您期望并行性可以帮助您 运行 更快?
使用 Tensorflow,您可以指定 "device placement",因此对于图表中的每个操作或操作组,您可以说明在哪个 GPU 上 运行,例如,如果您有多个 GPU。有关如何在 GPU 上进行操作的示例代码,请参阅 this tutorial。