所属分类:
Keras
Keras FAQ:常见问题
- 如何引用Keras?
- 如何使Keras调用GPU?
- 如何在多张GPU卡上使用Keras
- "batch", "epoch"和"sample"都是啥意思?
- 如何保存Keras模型?
- 为什么训练误差(loss)比测试误差高很多?
- 如何获取中间层的输出?
- 如何利用Keras处理超过机器内存的数据集?
- 当验证集的loss不再下降时,如何中断训练?
- 验证集是如何从训练集中分割出来的?
- 训练数据在训练时会被随机洗乱吗?
- 如何在每个epoch后记录训练/测试的loss和正确率?
- 如何使用状态RNN(statful RNN)?
- 如何“冻结”网络的层?
- 如何从Sequential模型中去除一个层?
- 如何在Keras中使用预训练的模型
- 如何在Keras中使用HDF5输入?
- Keras的配置文件存储在哪里?
- 在使用Keras开发过程中,我如何获得可复现的结果?
如何引用Keras?
如果Keras对你的研究有帮助的话,请在你的文章中引用Keras。这里是一个使用BibTex的例子
@misc{chollet2015keras,
author = {Chollet, François and others},
title = {Keras},
year = {2015},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/fchollet/keras}}
}
如何使Keras调用GPU?
如果采用TensorFlow作为后端,当机器上有可用的GPU时,代码会自动调用GPU进行并行计算。如果使用Theano作为后端,可以通过以下方法设置:
方法1:使用Theano标记
在执行python脚本时使用下面的命令:
THEANO_FLAGS=device=gpu,floatX=float32 python my_keras_script.py
方法2:设置.theano
文件
点击这里查看指导教程
方法3:在代码的开头处手动设置theano.config.device
和theano.config.floatX
import theano
theano.config.device = 'gpu'
theano.config.floatX = 'float32'
如何在多张GPU卡上使用Keras?
我们建议有多张GPU卡可用时,使用TnesorFlow后端。
有两种方法可以在多张GPU上运行一个模型:数据并行/设备并行
大多数情况下,你需要的很可能是“数据并行”
数据并行
数据并行将目标模型在多个设备上各复制一份,并使用每个设备上的复制品处理整个数据集的不同部分数据。Keras在keras.utils.multi_gpu_model
中提供有内置函数,该函数可以产生任意模型的数据并行版本,最高支持在8片GPU上并行。
请参考utils中的multi_gpu_model文档。 下面是一个例子:
from keras.utils import multi_gpu_model
# Replicates `model` on 8 GPUs.
# This assumes that your machine has 8 available GPUs.
parallel_model = multi_gpu_model(model, gpus