Cara yang agak terpisah untuk melakukan ini adalah dengan menggunakan
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)
Di sini, dengan booleans GPUdan CPU, kami menunjukkan apakah kami ingin menjalankan kode kami dengan GPU atau CPU dengan mendefinisikan secara kaku jumlah GPU dan CPU yang diizinkan untuk diakses sesi Tensorflow. Variabel num_GPUdan num_CPUtentukan nilai ini. num_coreslalu setel jumlah inti CPU yang tersedia untuk digunakan melalui intra_op_parallelism_threadsdan inter_op_parallelism_threads.
The intra_op_parallelism_threadsmendikte variabel jumlah benang operasi paralel dalam satu simpul pada grafik perhitungan diperbolehkan untuk digunakan (intra). Sedangkan inter_ops_parallelism_threadsvariabel menentukan jumlah utas yang dapat diakses untuk operasi paralel di seluruh node grafik komputasi (antar).
allow_soft_placement memungkinkan operasi dijalankan pada CPU jika salah satu kriteria berikut terpenuhi:
tidak ada implementasi GPU untuk operasi tersebut
tidak ada perangkat GPU yang dikenal atau terdaftar
ada kebutuhan untuk bekerja sama dengan input lain dari CPU
Semua ini dijalankan di konstruktor kelas saya sebelum operasi lain, dan sepenuhnya terpisah dari model atau kode lain yang saya gunakan.
Catatan: Ini membutuhkan tensorflow-gpudan cuda/ cudnnharus diinstal karena opsi diberikan untuk menggunakan GPU.
Referensi:
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'seperti pada jawaban di bawah ini