modulenotfounderror instalar example como python machine-learning tensorflow keras

python - instalar - modulenotfounderror: no module named ''keras''



¿Se puede obligar a Keras con backend Tensorflow a usar CPU o GPU a voluntad? (6)

Acabo de pasar un tiempo para resolverlo. La respuesta de Thoma no está completa. Digamos que su programa es test.py , desea usar gpu0 para ejecutar este programa y mantener otros gpus libres.

Debería escribir CUDA_VISIBLE_DEVICES=0 python test.py

Tenga en cuenta que es DEVICES no DEVICE

Tengo Keras instalado con el backend Tensorflow y CUDA. A veces me gustaría obligar a Keras a utilizar CPU. ¿Se puede hacer esto sin necesidad de instalar un Tensorflow separado solo para CPU en un entorno virtual? ¿Si es así, cómo? Si el backend fuera Theano, las banderas podrían establecerse, pero no he oído hablar de las banderas de Tensorflow accesibles a través de Keras.


Esto funcionó para mí (win10), lugar antes de importar keras:

import os os.environ[''CUDA_VISIBLE_DEVICES''] = ''-1''


Según el tutorial tf.device simplemente puede usar el mismo alcance tf.device que en el flujo de tensor regular:

import tensorflow as tf # your code here with tf.device(''/gpu:0''): model.fit(X, y, epochs=20, batch_size=128, callbacks=callbacks_list)



Solo importa tensortflow y usa keras, es así de fácil.

with tf.device(''/gpu:0''): x = tf.placeholder(tf.float32, shape=(None, 20, 64)) y = LSTM(32)(x) # all ops in the LSTM layer will live on GPU:0 with tf.device(''/cpu:0''): x = tf.placeholder(tf.float32, shape=(None, 20, 64)) y = LSTM(32)(x) # all ops in the LSTM layer will live on CPU:0


Una forma bastante separable de hacer esto es usar

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)

Aquí, con la GPU y la CPU booleans , indicamos si nos gustaría ejecutar nuestro código con la GPU o la CPU definiendo rígidamente el número de GPU y CPU a las que se permite acceder a la sesión de Tensorflow. Las variables num_GPU y num_CPU definen este valor. num_cores luego establece el número de núcleos de CPU disponibles para su uso a través de intra_op_parallelism_threads e inter_op_parallelism_threads .

La variable intra_op_parallelism_threads dicta el número de subprocesos que una operación paralela en un solo nodo en el gráfico de cálculo puede usar (intra). Mientras que la variable inter_ops_parallelism_threads define el número de hilos accesibles para operaciones paralelas a través de los nodos del gráfico de cálculo (inter).

allow_soft_placement permite que las operaciones se ejecuten en la CPU si se cumple alguno de los siguientes criterios:

  1. no hay implementación de GPU para la operación

  2. no hay dispositivos GPU conocidos o registrados

  3. existe la necesidad de ubicar conjuntamente con otras entradas de la CPU

Todo esto se ejecuta en el constructor de mi clase antes de cualquier otra operación, y es completamente separable de cualquier modelo u otro código que use.

Nota: Esto requiere la tensorflow-gpu y cuda / cudnn porque se ofrece la opción de usar una GPU.

Refs: