Preguntas frecuentes de Keras: preguntas frecuentes

Preguntas frecuentes de Keras: preguntas frecuentes


 

¿Cómo citar a Keras?

Si Keras contribuye a su investigación, cítelo en su publicación. Los siguientes son ejemplos de referencias de entrada de BibTeX:

@misc{chollet2015keras,
  title={Keras},
  author={Chollet, Fran\c{c}ois and others},
  year={2015},
  publisher={GitHub},
  howpublished={\url{https://github.com/keras-team/keras}},
}

¿Cómo ejecutar Keras en GPU?

Si está ejecutando con TensorFlow o CNTK backend, siempre que se detecte cualquier GPU disponible, el código se ejecutará automáticamente en la GPU.

Si está ejecutando con el backend Theano, puede usar uno de los siguientes métodos:

Método 1 : usa las banderas Theano.

THEANO_FLAGS=device=gpu,floatX=float32 python my_keras_script.py

"gpu" puede necesitar ser cambiado de acuerdo con el identificador de su dispositivo (por ejemplo, gpu0, gpu1, etc.).

Método 2 : Crear  .theanorctutorial guiado

Método 3 : configurar manualmente en el principio del código  theano.config.devicetheano.config.floatX:

import theano
theano.config.device = 'gpu'
theano.config.floatX = 'float32'

¿Cómo ejecutar el modelo Keras en múltiples GPU?

Recomendamos utilizar el backend TensorFlow para realizar esta tarea. Hay dos formas de ejecutar un solo modelo en varias GPU: datos paralelos y dispositivos paralelos .

En la mayoría de los casos, lo que más necesita es paralelismo de datos.

Paralelismo de datos

La paralelización de datos implica copiar el modelo de destino una vez en cada dispositivo y usar cada copia del modelo para procesar diferentes partes de los datos de entrada. Keras tiene una función de utilidad incorporada  keras.utils.multi_gpu_modelque puede generar versiones paralelas de datos de cualquier modelo y lograr una aceleración cuasi lineal en hasta 8 GPU.

Para obtener más información, consulte   la documentación de multi_gpu_model . Aquí hay un ejemplo rápido:

from keras.utils import multi_gpu_model

# 将 `model` 复制到 8 个 GPU 上。
# 假定你的机器有 8 个可用的 GPU。
parallel_model = multi_gpu_model(model, gpus=8)
parallel_model.compile(loss='categorical_crossentropy',
                       optimizer='rmsprop')

# 这个 `fit` 调用将分布在 8 个 GPU 上。
# 由于 batch size 为 256,每个 GPU 将处理 32 个样本。
parallel_model.fit(x, y, epochs=20, batch_size=256)

Dispositivo paralelo

El paralelismo del dispositivo incluye ejecutar diferentes partes del mismo modelo en diferentes dispositivos. Para un modelo con una arquitectura paralela, como un modelo con dos ramas, este enfoque es adecuado.

Este paralelismo se puede lograr mediante el uso de ámbitos del dispositivo TensorFlow. Aquí hay un ejemplo simple:

# 模型中共享的 LSTM 用于并行编码两个不同的序列
input_a = keras.Input(shape=(140, 256))
input_b = keras.Input(shape=(140, 256))

shared_lstm = keras.layers.LSTM(64)

# 在一个 GPU 上处理第一个序列
with tf.device_scope('/gpu:0'):
    encoded_a = shared_lstm(tweet_a)
# 在另一个 GPU上 处理下一个序列
with tf.device_scope('/gpu:1'):
    encoded_b = shared_lstm(tweet_b)

# 在 CPU 上连接结果
with tf.device_scope('/cpu:0'):
    merged_vector = keras.layers.concatenate([encoded_a, encoded_b],
                                             axis=-1)
130 artículos originales publicados · Me gusta 30 · Visitas 40,000+

Supongo que te gusta

Origin blog.csdn.net/W_H_M_2018/article/details/105569693
Recomendado
Clasificación