相关疑难解决方法(0)

inter_op_parallelism_threads和intra_op_parallelism_threads的含义

有人可以解释以下TensorFlow术语

  1. inter_op_parallelism_threads

  2. intra_op_parallelism_threads

或者,请提供正确解释来源的链接.

我通过改变参数进行了一些测试,但结果并不一致,无法得出结论.

python parallel-processing distributed-computing tensorflow

50
推荐指数
2
解决办法
3万
查看次数

Keras / Tensorflow-限制内核数(intra_op_parallelism_threads不起作用)

我一直在尝试在CPU群集上运行keras,为此,我需要限制使用的内核数量(这是一个共享系统)。因此,为了限制内核数量,我着眼于这个答案。但是,这根本行不通。我尝试使用以下基本代码运行:

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)
Run Code Online (Sandbox Code Playgroud)

当我运行它并检查时htop,它将使用所有(128)逻辑核心。这是喀拉拉邦的错误吗?还是我做错了什么?

Keras说我的CPU支持SSE4.1和SSE4.2,因为我不是从二进制编译的,所以未使用它们。从二进制进行编译还会解决原始问题吗?

编辑:从UNIX计算机启动keras脚本时,我找到了一种解决方法:

taskset -c 0-23 python keras_script.py
Run Code Online (Sandbox Code Playgroud)

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

keras tensorflow

8
推荐指数
1
解决办法
1247
查看次数

Keras没有使用完整的CPU内核进行培训

我正在使用Tensorflow后端上的Keras在我的计算机上的非常庞大的数据集上训练LSTM模型。我的机器有16个核心。在训练模型时,我注意到所有核心的负载均低于40%。

我已经通过不同的渠道寻找解决方案,并尝试提供作为后端使用的内核。

config = tf.ConfigProto(device_count={"CPU": 16})
backend.tensorflow_backend.set_session(tf.Session(config=config))
Run Code Online (Sandbox Code Playgroud)

即使那样,负载仍然相同。

这是因为模型很小。一个纪元大约需要5分钟。如果使用全核,则可以提高速度。

如何告诉Keras或Tensorflow使用完整的可用核,即16个核来训练模型。?

我经历了这些stackoverflow问题,并尝试了其中提到的解决方案。它没有帮助。

限制Keras中使用的内核数

python machine-learning keras tensorflow

8
推荐指数
1
解决办法
3357
查看次数