Saltar al contenido

¿Puedo ejecutar el modelo de Keras en gpu?

Solución:

Sí, puedes ejecutar modelos keras en GPU. Pocas cosas tendrás que comprobar primero.

  1. su sistema tiene GPU (Nvidia. Como AMD aún no funciona)
  2. Has instalado la versión GPU de tensorflow
  3. Ha instalado las instrucciones de instalación de CUDA
  4. Verifique que tensorflow se esté ejecutando con GPU verifique si la GPU está funcionando

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

para TF> v2.0

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

(Gracias @nbro y @Ferro por señalar esto en los comentarios)

O

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

la salida será algo como esto:

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

Una vez hecho todo esto, su modelo se ejecutará en GPU:

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

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

Todo lo mejor.

Seguro. Supongo que ya ha instalado TensorFlow para GPU.

Debe agregar el siguiente bloque después de importar keras. Estoy trabajando en una máquina que tiene una CPU de 56 núcleos y una 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)

Por supuesto, este uso impone los límites máximos de mis máquinas. Puede disminuir los valores de consumo de cpu y gpu.

Respuesta compatible 2.0: Si bien la respuesta mencionada anteriormente explica en detalle cómo usar la GPU en el modelo Keras, quiero explicar cómo se puede hacer para Tensorflow Version 2.0.

Para saber cuántas GPU están disponibles, podemos usar el siguiente código:

print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

Para saber a qué dispositivos están asignados sus operaciones y tensores, coloque tf.debugging.set_log_device_placement(True) como la primera declaración de su programa.

Al habilitar el registro de ubicación de dispositivos, se imprimen las asignaciones u operaciones de Tensor. Por ejemplo, ejecutando el siguiente código:

tf.debugging.set_log_device_placement(True)

# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)

print(c)

da la salida que se muestra a continuación:

Ejecutando op MatMul en dispositivo / trabajo: localhost / réplica: 0 / tarea: 0 / dispositivo: GPU: 0 tf.Tensor ( [[22. 28.]
[49. 64.]]forma = (2, 2), dtype = float32)

Para obtener más información, consulte este enlace.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *