Tensorflow 如何在CPU和GPU上同时运行Keras?

Tensorflow 如何在CPU和GPU上同时运行Keras?,tensorflow,parallel-processing,keras,recurrent-neural-network,convolutional-neural-network,Tensorflow,Parallel Processing,Keras,Recurrent Neural Network,Convolutional Neural Network,我正在训练一个由CNN和RNN组成的模型,该模型具有不同的输入,其输出将反馈给FCN。现在的问题是: 我可以在CPU上并行运行CNN和在GPU上并行运行RNN吗 与Tensorflow一样: with tf.device('/cpu:0'): CNN... with tf.device('/gpu:0'): RNN... 你可以完全使用你发布的代码 选择设备,定义图层,选择其他设备,定义其他图层: 现在,最好的性能可能会使用相反的方法: with tf.device('/gpu

我正在训练一个由CNN和RNN组成的模型,该模型具有不同的输入,其输出将反馈给FCN。现在的问题是:

我可以在CPU上并行运行CNN和在GPU上并行运行RNN吗

与Tensorflow一样:

with tf.device('/cpu:0'):
    CNN...
with tf.device('/gpu:0'):
    RNN...

你可以完全使用你发布的代码

选择设备,定义图层,选择其他设备,定义其他图层:

现在,最好的性能可能会使用相反的方法:

with tf.device('/gpu:0'):
    CNNKerasLayers....
with tf.device('/cpu:0'):
    RNNKerasLayers....

现在,我不确定keras将如何处理这个问题(有效地并行或不并行),但它很可能只是让tensorflow来解决它

您可以完全使用您发布的代码

选择设备,定义图层,选择其他设备,定义其他图层:

现在,最好的性能可能会使用相反的方法:

with tf.device('/gpu:0'):
    CNNKerasLayers....
with tf.device('/cpu:0'):
    RNNKerasLayers....

现在,我不确定keras将如何处理这个问题(有效地并行或不并行),但它很可能只是让tensorflow来解决它

我不知道RNN在CPU上是否更快。我有一个相对简单的RNN,有500个神经元和大约2700万个数据点。在GTX 1050 Ti上运行50个时代都需要时间。再说一次,CNN也很重。GPU中的RNN完全不好。现在GPU上的CNN很棒。您可以单独使用CPU和GPU测试RNN以进行确认。(有更新版本的RNN,比如
CuDNNGRU
CuDNNLSTM
,在GPU上可能更快)。嗯,很有趣。但愿我在开始研究之前就知道。谢谢你!我不知道RNN在CPU上是否更快。我有一个相对简单的RNN,有500个神经元和大约2700万个数据点。在GTX 1050 Ti上运行50个时代都需要时间。再说一次,CNN也很重。GPU中的RNN完全不好。现在GPU上的CNN很棒。您可以单独使用CPU和GPU测试RNN以进行确认。(有更新版本的RNN,比如
CuDNNGRU
CuDNNLSTM
,在GPU上可能更快)。嗯,很有趣。但愿我在开始研究之前就知道。谢谢你!