Bunu yapmanın oldukça ayrılabilir bir yolu,
import tensorflow as tf
from keras import backend as K
num_cores = 4
if GPU:
num_GPU = 1
num_CPU = 1
if CPU:
num_CPU = 1
num_GPU = 0
config = tf.ConfigProto(intra_op_parallelism_threads=num_cores,
inter_op_parallelism_threads=num_cores,
allow_soft_placement=True,
device_count = {'CPU' : num_CPU,
'GPU' : num_GPU}
)
session = tf.Session(config=config)
K.set_session(session)
Burada ile booleans GPUve CPUbiz katı erişime izin verilir GPU'lar ve CPU'lar Tensorflow oturumu sayısını tanımlayarak GPU veya CPU ile kod çalıştırmak istediğiniz belirtin. Değişkenler num_GPUve num_CPUbu değeri tanımlar. num_coresdaha sonra intra_op_parallelism_threadsve aracılığıyla kullanılabilen CPU çekirdeği sayısını ayarlar inter_op_parallelism_threads.
intra_op_parallelism_threadsDeğişken dikte parçacıkları hesaplama grafikte, tek bir düğümde bir paralel işlem sayısı kullanımı (intra) bırakılır. Birlikte inter_ops_parallelism_threadsdeğişken hesaplama grafik (arası) düğümlerinde boyunca paralel işlemler için erişilebilir parçacığı sayısını tanımlar.
allow_soft_placement Aşağıdaki kriterlerden herhangi biri karşılanırsa işlemlerin CPU üzerinde çalıştırılmasına izin verir:
işlem için GPU uygulaması yok
bilinen veya kayıtlı GPU cihazı yok
CPU'dan gelen diğer girişlerle aynı yerde bulunmaya ihtiyaç vardır
Bunların tümü, diğer işlemlerden önce sınıfımın yapıcısında yürütülür ve kullandığım herhangi bir modelden veya diğer koddan tamamen ayrılabilir.
Not: Bu, GPU kullanma seçeneği verildiği için kurulmasını gerektirir tensorflow-gpuve cuda/ cudnnyüklenmelidir.
Referanslar:
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'aşağıdaki cevapta olduğu gibi ayarlamak zorunda kaldı