天天看点

机器学习之多层感知器

多层感知器(multi-Layer Perceptron)

Keras是一个用Python编写的用于

神经网络开发的应用接口

,调用接口可以实现神经网络、卷积神经网络、循环神经网络等常用深度学习算法的开发

特点:

  • 集成了深度学习中各类成熟的算法,容易安装和使用,样例丰富教程和文档也非常详细
  • 能够

    以TensorFlow,或者Theano作为后端运行

    https://keras.io/zh/

    https://keras.io/

    https://keras-cn.readthedocs.io/en/latest/#30skeras

Tensorflow是一个采用数据流图,用于数值计算的开源软件库,可自动计算模型相关的微分导数:非常适合用于神经网络模型的求解。

Keras可看作为tensorflow封装后的一个接口(Keras作为前端,TensorFlow作为后端),简单来说

Keras为用户提供了一个易于交互的外壳,方便进行深度学习的快速开发

##建立一个Sequential顺序模型
from keras.models import Sequential
model = Sequential()

#通过.add()叠加各层网络
#input_dim是输入层,第一个add包含了一个输入层和一个隐含层
#输出层也是用.add方式填入
from keras.layers import Dense
model.add(Dense(units=3,activation='sigmoid',input_dim=3))
model.add(Dense(units=1,activation='sigmoid'))
mlp.summary()

#通过.compile()配置模型求解过程参数
model.compile(loss='categorical_crossentropy',optimizer='sgd')

#训练模型
model.fit(x_train,y_train,epochs=5)

#结果预测(把概率转成0或1)
y_test_predict = mlp.predict_classes(X_test)

#把预测结果转换为可用于索引的Series类型:
y_range_predict = pd.Series([i[0] for i in y_range_predict])

#加载mnist数据集
from keras.datasets import mnist
(X_train,y_train),(X_test,y_test) = mnist.load_data()

#可视化图片
img1 = X_train[0]
fig1 = plt.figure(figsize=(3,3))
plt.imshow(img1)

#转换输出结果格式:
from keras.utils import to_categorical
y_train_format = to_categorical(y_train)

#转换输入数据维度
feature_size = img1.shape[0]*img1.shape[1]
X_train_format = X_train.reshape(X_train.shape[0],feature_size)
           

mnist数据集介绍

机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28*28像素的灰度手写数字图片

http://yann.lecun.com/exdb/mnist/

一共4个文件,训练集、训练集标签、测试集、测试集标签

下载安装keras+tensorflow

下载keras时会自动下载tensorflow包

pip/conda install keras
           

源代码地址

继续阅读