Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 是否可以在caffe或tensorflow中并行运行cnn中的每一层?_Optimization_Tensorflow_Parallel Processing_Caffe_Conv Neural Network - Fatal编程技术网

Optimization 是否可以在caffe或tensorflow中并行运行cnn中的每一层?

Optimization 是否可以在caffe或tensorflow中并行运行cnn中的每一层?,optimization,tensorflow,parallel-processing,caffe,conv-neural-network,Optimization,Tensorflow,Parallel Processing,Caffe,Conv Neural Network,我希望并行运行经过训练的CNN的每一层,以减少正向传播过程中的计算时间(基本上,我希望运行CNN以实现涉及相机的实时应用程序,而不会对FPS造成太大影响)。我将为每一层保留一个输入队列和一个输出队列。每个层可以处理来自输入层的blob,并将其转储到输出层(这在逻辑上可以并行完成)。每层的输出队列将用作下一层的输入队列。然后,我将从最后一层的输出队列(它将是一个二进制标签)收集所有输出并处理它们。所以我的问题是,有没有可能在Caffe或Tensorflow中并行运行CNN的每一层来实现这一点。我不

我希望并行运行经过训练的CNN的每一层,以减少正向传播过程中的计算时间(基本上,我希望运行CNN以实现涉及相机的实时应用程序,而不会对FPS造成太大影响)。我将为每一层保留一个输入队列和一个输出队列。每个层可以处理来自输入层的blob,并将其转储到输出层(这在逻辑上可以并行完成)。每层的输出队列将用作下一层的输入队列。然后,我将从最后一层的输出队列(它将是一个二进制标签)收集所有输出并处理它们。所以我的问题是,有没有可能在Caffe或Tensorflow中并行运行CNN的每一层来实现这一点。

我不知道TF。

关于咖啡馆——这听起来是个坏主意。在层之间放置队列和同步机制只会降低速度(特别是在GPU上运行并通过CPU结构进行同步时)。Caffe的设计目的是按顺序进行向前传球并快速完成。为什么您希望并行性能够帮助您更快地运行它

使用Tensorflow,您可以指定“设备放置”,因此对于图形中的每个操作或操作组,您可以说在哪个GPU上运行它,例如,如果您有多个GPU。有关如何在GPU上放置操作的示例代码,请参见。

假设我有10张图像,使用CNN进行分类。现在在Caffe中使用前向传播,我的每个图像(第一个除外)都必须等待队列中的图像通过整个cnn管道,这是浪费时间。当第一张图像通过第一层时,第二张图像就会进入,依此类推。我知道最快的方法是并行启动每个管道,但这会消耗太多的资源(基本上是CNN层中权重的倍数)@AyushPandey,如果你有足够的资源用于
K
帧,最好将它们作为一批大小
K
运行。