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
GPU
ve CPU
biz 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_GPU
ve num_CPU
bu değeri tanımlar. num_cores
daha sonra intra_op_parallelism_threads
ve aracılığıyla kullanılabilen CPU çekirdeği sayısını ayarlar inter_op_parallelism_threads
.
intra_op_parallelism_threads
Değ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_threads
değ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-gpu
ve cuda
/ cudnn
yüklenmelidir.
Referanslar:
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
aşağıdaki cevapta olduğu gibi ayarlamak zorunda kaldı