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
GPU
dan 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_GPU
dan num_CPU
tentukan nilai ini. num_cores
lalu setel jumlah inti CPU yang tersedia untuk digunakan melalui intra_op_parallelism_threads
dan inter_op_parallelism_threads
.
The intra_op_parallelism_threads
mendikte variabel jumlah benang operasi paralel dalam satu simpul pada grafik perhitungan diperbolehkan untuk digunakan (intra). Sedangkan inter_ops_parallelism_threads
variabel 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-gpu
dan cuda
/ cudnn
harus diinstal karena opsi diberikan untuk menggunakan GPU.
Referensi:
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
seperti pada jawaban di bawah ini