python Posso rodar o modelo Keras na gpu?




tensorflow jupyter (3)

Estou executando um modelo Keras, com um prazo de envio de 36 horas, se eu treinar meu modelo na cpu, levará aproximadamente 50 horas, existe uma maneira de executar Keras na gpu?

Estou usando o back-end do Tensorflow e executando-o no meu notebook Jupyter, sem o anaconda instalado.


Sim, você pode executar modelos keras na GPU. Poucas coisas que você terá que verificar primeiro.

  1. seu sistema possui GPU (Nvidia. Como a AMD ainda não funciona)
  2. Você instalou a versão GPU do tensorflow
  3. Você instalou as instruções de instalação do CUDA
  4. Verifique se o tensorflow está em execução com a GPU, verifique se a GPU está funcionando

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

OU

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

saída será algo como isto:

[
  name: "/cpu:0"device_type: "CPU",
  name: "/gpu:0"device_type: "GPU"
]

Uma vez feito tudo isso, seu modelo será executado na GPU:

Para verificar se keras (> = 2.1.1) está usando GPU:

from keras import backend as K
K.tensorflow_backend._get_available_gpus()

Muito bem sucedida.


Claro. se você estiver executando em back-end Tensorflow ou CNTk, seu código será executado em seus dispositivos de GPU por padrão.

Bandeiras Theano:

"THEANO_FLAGS = dispositivo = gpu, floatX = python float32 my_keras_script.py"


Certo. Suponho que você já instalou o TensorFlow para GPU.

Você precisa adicionar o seguinte bloco depois de importar o keras. Estou trabalhando em uma máquina que tem 56 núcleos e uma gpu.

import keras
import tensorflow as tf


config = tf.ConfigProto( device_count = {'GPU': 1 , 'CPU': 56} ) 
sess = tf.Session(config=config) 
keras.backend.set_session(sess)

Obviamente, esse uso impõe limites máximos às minhas máquinas. Você pode diminuir os valores de consumo de CPU e GPU.







jupyter