我的系统中有两个GPU,并且我在使用TensorFlow后端的Keras。GPU:0被分配给了PyCUDA,它执行一个独特的操作,这个操作会传递给Keras,并且每个批次都会变化。因此,我想在GPU:1上运行Keras模型,同时让GPU:0继续分配给PyCUDA。
有什么方法可以做到这一点吗?我查看了之前的讨论,找到了几个已废弃的解决方案。
回答:
所以我认为这个功能目前在Keras中并没有得到有效实现。我找到了一个推荐的变通方法,你可以使用Python的默认多进程库创建多个进程来解决这个问题。
注意:对于这种设置,目前你需要生成一个新的进程,而不是分叉进程,以避免与PyCUDA后端库之一发生奇怪的交互。