Keras / tensorflow - 限制核心数(intra_op_parallelism_threads不工作)

时间:2018-04-05 17:10:29

标签: tensorflow keras

我一直在尝试在CPU群集上运行keras,为此我需要限制使用的核心数量(它是共享系统)。因此,为了限制核心数量,我登陆this answer。但是,这根本行不通。我尝试使用这个基本代码运行:

from keras.applications.vgg16 import VGG16
from keras import backend as K
import numpy as np

conf = K.tf.ConfigProto(device_count={'CPU': 1}, 
                        intra_op_parallelism_threads=2, 
                        inter_op_parallelism_threads=2)
K.set_session(K.tf.Session(config=conf))
model = VGG16(weights='imagenet', include_top=False)
x = np.random.randn(1000, 224, 224, 3)
features = model.predict(x)

当我运行它并检查htop时,它使用所有(128个)逻辑核心。这是keras中的一个错误吗?或者我做错了什么?

Keras说我的CPU支持SSE4.1和SSE4.2,因为我没有从二进制编译而没有使用它们。从二进制编译也会修复原始问题吗?

编辑:我从unix机器启动keras脚本时找到了解决方法:

taskset -c 0-23 python keras_script.py

这将在机器的前24个核心上运行脚本。它可以工作,但如果可以从keras / tensorflow中获得它仍然会很好。

1 个答案:

答案 0 :(得分:0)

我找到了适合我的这段代码,希望对您有所帮助:

 config value="123"
-whatever blah blah
+whatever