Keras是一种high level的神经网路的Python API,它可以在TensorFlow, CNTK, or Theano上运行,兼容Python Python 2.7~3.6,所以非常方便。可以在CPU和GPU上运行,适用于快速验证想法。
**模块化:**neural layers, cost functions, optimizers, initialization schemes, activation functions, regularization schemes。
扩展性强:可以自己加模块使用。
如果没有安装TensorFlow,那么安装 【2】。接着一条命令安装Keras:
https://www.tensorflow.org/install/
跑mnist数据集【3】:
快速运行Keras几个代码:
sequential model:
from keras.models import Sequential
model = Sequential()
可以在这个模型上加入新的层:
from keras.layers import Dense
model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))
然后编译模型:
model.compile(loss='categorical_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))
训练模型的时候,使用fit会自动进行batch training。
model.fit(x_train, y_train, epochs=5, batch_size=32)
当然也可以自己手动:
model.train_on_batch(x_batch, y_batch)
然后使用模型进行predict:
classes = model.predict(x_test, batch_size=128)
在Keras里面有很多的example,照着来就可以熟悉基本上,【4】
一些基本问题,使用多GPU,分布式,RNN,迁移学习的使用。
对于Model API的介绍:[6]
对于Sequential Model:[7]
看了Keras的guide,写的确实太好了,之后再来一个实际例子进行讲解。
这个东西有个教程,在这里可以看这个视频,超级搞笑:【8】
图上的loss function应该是cross-entropy。
当然上面的例子是正确率很低的,视频中高告诉我们,深度学习原来就是靠调参来的。
另外,activation function改成ReLU,因为使用Sigmoid会使得浅层的weight基本没用更新。
useful Links:
[1] Keras网站: https://keras.io
[2] TensforFlow 安装: https://www.tensorflow.org/install/
[3] MNIST: https://keras.io/datasets/
[4] Example: https://github.com/keras-team/keras/tree/master/examples
[5] Q&A: https://keras.io/getting-started/faq/
[6] Model API: https://keras.io/models/model/
[7] Sequential Model:https://keras.io/getting-started/sequential-model-guide/
[8] MNIST 模型视频: https://www.youtube.com/watch?v=L8unuZNpWw8
https://www.youtube.com/watch?v=Ky1ku1miDow&feature=youtu.be
https://www.youtube.com/watch?v=F1vek6ULo9w&feature=youtu.be