keras学习笔记2——Merge理解、GPU的设置方法,以及新手的注意事项

keras学习笔记2——Merge、GPU调用、快速开始及常见问题

参考资料:http://keras-cn.readthedocs.io/en/latest/

1. Merge层

Merge层主要是用来合并多个model的,例子如下:

from keras.layers import Merge,Dense
from keras.models import Sequential
first_model=Sequential()
first_model.add(Dense(3,input_dim=5))
second_model=Sequential()
second_model.add(Dense(4,input_dim=4))
merged=Merge(layers=[first_model,second_model],mode='concat')
model=Sequential()
model.add(merged)
model.add(Dense(3))

详细:http://keras-cn.readthedocs.io/en/latest/getting_started/sequential_model/

2. GPU调用

TensorFlow做为后端时,会自动调用GPU,但使用Theano时,需要手动加载。
帮助文档:http://keras-cn.readthedocs.io/en/latest/getting_started/FAQ/#GPU中给出了三种调用GPU的方式,前两种未测试是否可用(不方便),第三种经测试判断不可用。因为在导入theano时,设备就已固定,无法更改,所以需在导入前更改设备。解决方式:

import os    
os.environ['THEANO_FLAGS'] = "device=gpu1"    
import theano

参考:http://stackoverflow.com/questions/30184994/how-can-i-change-device-used-of-theano/33579079

3. keras快速开始

keras的帮助文档极其详细,作为一名新手,仅需对keras做一般了解,即可上手并实现较为复杂的network。
Sequential模型:
http://keras-cn.readthedocs.io/en/latest/getting_started/sequential_model/
一般模型(复杂)
用户自定义复杂模型,如多输入输出模型、非循环模型、共享层模型等
http://keras-cn.readthedocs.io/en/latest/getting_started/functional_API/

4. 若干常见问题

参考:http://keras-cn.readthedocs.io/en/latest/getting_started/FAQ/
- 如何引用Keras?
- 如何使Keras调用GPU?
- 如何保存Keras模型?
- 为什么训练误差(loss)比测试误差高很多?
- 如何观察中间层的输出?
- 如何利用Keras处理超过机器内存的数据集?
- 当验证集的loss不再下降时,如何中断训练?
- 验证集是如何从训练集中分割出来的?
- 训练数据在训练时会被随机洗乱吗?
- 如何在每个epoch后记录训练/测试的loss和正确率?
- 如何使用状态RNN(statful RNN)?
- 如何使用Keras进行分布式/多GPU运算?

猜你喜欢

转载自blog.csdn.net/qq_36955294/article/details/83024346
今日推荐