Tôi đang sử dụng Tensorflow trên một cụm và tôi muốn nói với Tensorflow chỉ chạy trên một lõi đơn (mặc dù có sẵn nhiều hơn).Làm cách nào để chạy Tensorflow trên một lõi đơn?
Có ai đó biết nếu điều này là có thể không?
Tôi đang sử dụng Tensorflow trên một cụm và tôi muốn nói với Tensorflow chỉ chạy trên một lõi đơn (mặc dù có sẵn nhiều hơn).Làm cách nào để chạy Tensorflow trên một lõi đơn?
Có ai đó biết nếu điều này là có thể không?
Bạn có thể hạn chế số lượng thiết bị của một loại nhất định mà TensorFlow sử dụng bằng cách chuyển số device_count
thích hợp vào một đối số ConfigProto
làm đối số config
khi tạo phiên của bạn. Ví dụ, bạn có thể hạn chế số lượng thiết bị CPU như sau:
config = tf.ConfigProto(device_count={'CPU': 1})
sess = tf.Session(config=config)
with sess.as_default():
print(tf.constant(42).eval())
Để chạy Tensorflow trên một thread CPU duy nhất, tôi sử dụng:
session_conf = tf.ConfigProto(
intra_op_parallelism_threads=1,
inter_op_parallelism_threads=1)
sess = tf.Session(config=session_conf)
device_count
giới hạn số lượng CPU được sử dụng, không số lượng lõi hoặc chủ đề.
tensorflow/tensorflow/core/protobuf/config.proto
nói:
message ConfigProto {
// Map from device type name (e.g., "CPU" or "GPU") to maximum
// number of devices of that type to use. If a particular device
// type is not found in the map, the system picks an appropriate
// number.
map<string, int32> device_count = 1;
Trên Linux bạn có thể chạy sudo dmidecode -t 4 | egrep -i "Designation|Intel|core|thread"
để xem có bao nhiêu CPU/lõi/chủ đề mà bạn có, ví dụ sau đây có 2 CPU, mỗi người trong số họ có 8 lõi, mỗi người trong số họ có 2 đề, mang đến cho tổng cộng 2 * 8 * 2 = 32 chủ đề:
[email protected]:~$ sudo dmidecode -t 4 | egrep -i "Designation|Intel|core|thread"
Socket Designation: CPU1
Manufacturer: Intel
HTT (Multi-threading)
Version: Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz
Core Count: 8
Core Enabled: 8
Thread Count: 16
Multi-Core
Hardware Thread
Socket Designation: CPU2
Manufacturer: Intel
HTT (Multi-threading)
Version: Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz
Core Count: 8
Core Enabled: 8
Thread Count: 16
Multi-Core
Hardware Thread
Thử nghiệm với Tensorflow 0.12.1 và 1.0. 0 với Ubuntu 14.04.5 LTS x64 và Ubuntu 16.04 LTS x64.
Thật không may, điều này dường như không có tác dụng khi chạy trên Windows 10 (tf 1.5.0). Đó là một vấn đề không có cách để rời khỏi một lõi miễn phí cho các chương trình khác. – Elroch
@LiamRoche Tôi không nghĩ rằng điều này là vụ phải xảy ra. Bạn có thể muốn đưa ra một vấn đề trong kho lưu trữ GitHub. –
Tôi đã thử điều này, nhưng nó không hoạt động. Nếu tôi gửi một công việc cho cụm, Tensorflow vẫn hoạt động trên tất cả các lõi có sẵn của một nút. Tôi làm như sau: init = tf.initialize_all_variables() #launch đồ thị config = tf.ConfigProto (device_count = {'CPU': 1}) sess = tf.Session (config = config) sess.run (init) –