上QQ阅读APP看书,第一时间看更新
1.2 TFLearn
TFLearn是一个模块化和透明的深度学习库,构建在TensorFlow之上,它为TensorFlow提供高层次API,目的是快速搭建试验环境,同时保持对TensorFlow的完全透明和兼容性。
TFLearn具有以下特点:
❑ 容易使用和易于理解的高层次API用于实现深度神经网络,附带教程和例子。
❑ 通过高度模块化的内置神经网络层、正则化器、优化器等进行快速原型设计。
❑ 强大的辅助函数,训练任意TensorFlow图,支持多输入、多输出和优化器。
❑ 简单而美观的图可视化,具有关于权值、梯度、特征图等细节。
❑ 无需人工干预,可使用多CPU、多GPU。
本书的主要代码都是基于TFLearn开发的。
1.安装。
TFLearn的安装推荐使用使用pip工具:
pip install tflearn
如果需要使用源码安装,可以直接从GitHub上下载对应源码:
https://github.com/tflearn
然后进入TFLearn目录安装即可:
python setup.py install
2.使用举例。
TFLearn自带MNIST数据,使用函数mnist.load_data接口,并且可以通过指定one_hot=True直接获取使用独热编码的标签:
X, Y, testX, testY = mnist.load_data(one_hot=True)
构造一个隐藏层为2层,每层核数分别为64、64,输出层核数为10的多层感知机,使用fully_connected函数即可完成构造全连接网络的工作,使用tflearn.input_data定义输入数据大小。为了避免过拟合,每层之间使用Dropout函数进行部分丢失处理:
# Building deep neural network input_layer = tflearn.input_data(shape=[None, 784]) dense1 = tflearn.fully_connected(input_layer, 64, activation='tanh', regularizer='L2', weight_decay=0.001) dropout1 = tflearn.dropout(dense1, 0.8) dense2 = tflearn.fully_connected(dropout1, 64, activation='tanh', regularizer='L2', weight_decay=0.001) dropout2 = tflearn.dropout(dense2, 0.8) softmax = tflearn.fully_connected(dropout2, 10, activation='softmax')
使用多层感知机进行训练,通过n_epoch设置训练的轮数:
# Training model = tflearn.DNN(net, tensorboard_verbose=0) model.fit(X, Y, n_epoch=20, validation_set=(testX, testY), show_metric=True, run_id="dense_model")
经过20轮的训练后,准确率达到了99.54%:
Training Step: 17200 | total loss: 0.43454 | time: 5.444s | SGD | epoch: 020 | loss: 0.43454- top3: 0.9685 | val_loss: 0.10618- val_ acc: 0.9954-- iter: 55000/55000