其他
MLK | Keras 入门深度学习逢看必会
MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,这次主要讲下Keras的入门。
🎥 前情回顾
MLK | 一文理清 深度学习前馈神经网络
🚙 Index
Keras的简易安装——Window版
Keras 的“Hello World”
01 Keras的简易安装——Window版
Keras作为深度学习工具,对于 初学者还是蛮友好的,在安装前,我们要知道Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。因此我们安装Keras前,就必须安装相关的依赖包。
theano.test()
Step2:安装TensorFlow/Keras
pip install keras
Step3:终极测试
git clone https://github.com/fchollet/keras.git
cd keras/examples/
python mnist_mlp.py
02 Keras 的“Hello World”
Step1:数据集获取
这里我们训练一个简单的深度神经网络来玩玩,用 MNIST 数据集(手写数字识别)
'''
from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import RMSprop
# 导入数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
print(x_train.shape)
print(x_test.shape)
# 转换为二进制
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')
print(y_train)
print('---------------------')
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)
print(y_train)
Step2:定义模型
model = Sequential()
# 定义网络第 1 个隐含层的节点个数
model.add(Dense(input_dim = 28*28,
output_dim = 500,
activation = 'sigmoid'))
# 定义网络第 2 个隐含层的节点个数
model.add(Dense(output_dim = 500,
activation = 'sigmoid'))
# 定义网络输出层的节点个数
model.add(Dense(output_dim = 10, activation='softmax'))
# 模型样貌
model.summary()
Step3:模型评估
model.compile(loss='categorical_crossentropy', # 损失函数
optimizer=RMSprop(), # 优化器
metrics=['accuracy']) # 评估指标
Step4:训练模型
history = model.fit(x_train, y_train,
batch_size=100,
epochs=20,
verbose=1,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
# 训练结果
print('Test loss:', score[0])
print('Test accuracy:', score[1])