2016-07-04 35 views

Trả lời

1

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()) 
+5

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) –

18

Để 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.

+0

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

+0

@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. –

Các vấn đề liên quan