Keras 开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
Keras 并不处理如张量乘法、卷积等底层操作。这些操作依赖于某种特定的、优化良好的张量操作库。
1. Keras install
1 | pip install --upgrade pip |
2. Basic concepts
keras-cn.readthedocs.io 一些基本概念
- 符号计算
- tensor 张量
- data_format
- functional model API
- batch
- epochs
规模最小的张量是0阶张量,即标量,也就是一个数。
Keras 模型有一种叫 Sequential,也就是单输入单输出,一条路通到底,跨层连接统统没有。
Keras 中用的优化器SGD是stochastic gradient descent的缩写,不是一样本更新,还是基于mini-batch的.
1 | import numpy as np |
3. Quickstart in 30s
Sequential模型如下
1 | from keras.models import Sequential |
将一些网络层通过.add()
堆叠起来,就构成了一个模型:
1 | from keras.layers import Dense, Activation |
完成模型的搭建后,我们需要使用.compile()
方法来编译模型:
1 | model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) |
完成模型编译后,我们在训练数据上按batch进行一定次数的迭代来训练网络
1 | model.fit(x_train, y_train, epochs=5, batch_size=32) |
也可以手动将一个个batch的数据送入网络中训练,这时候需要使用:
1 | model.train_on_batch(x_batch, y_batch) |
随后,我们可以使用一行代码对我们的模型进行评估,看看模型的指标是否满足我们的要求:
1 | loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128) |
使用模型,对新的数据进行预测:
1 | classes = model.predict(x_test, batch_size=128) |
4. Functional model
- 第一个模型:全连接网络
- 多输入和多输出模型
- 共享层, 层“节点”的概念
5. Sequential model
Sequential model 是多个网络层的线性堆叠,也就是“一条路走到黑”。
1 | model = Sequential() |
5.1 input data shape
1 | model = Sequential() |
5.2 compile and train (fit)
Sequential model methods_cn、Sequential model methods_en
compile Arguments
- optimizer
- loss
- metrics
1 | # For a multi-class classification problem |
Keras 以 Numpy数组 作为 input_data
和 label
的数据类型。训练模型一般使用**fit函数
**.
1 | # For a single-input model with 2 classes (binary classification): |
6. Pre-knowledge
6.1 python language
-
Object-oriented, class, object, encapsulation, polymorphism, inheritance, scope, etc.
-
Python 的科学计算包有一定了解,numpy, scipy, scikit-learn, pandas…
-
generator,以及如何编写 generator。什么是匿名函数(lambda)
6.2 deep learning
Supervised Learning, Unsupervised Learning, Classification, Clustering, Regression
Neuron model, multilayer perceptron,BP algorithm
loss function,activation function,Gradient descent
Fully Connected NN、CNN、RNN、LSTM
Training set, test set, cross validation, under-fitting, over-fitting
Checking if Disqus is accessible...