【Keras】中文文档学习笔记-快速上手Keras

时间:2022-02-15 14:01:47

基于中文官方文档英文官方文档的学习笔记,较系统的总结学习历程。

Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:

  • 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
  • 支持CNN和RNN,或二者的结合
  • 无缝CPU和GPU切换

Keras的核心数据结构是“模型”,模型是一种组织网络层的方式。Keras中主要的模型是Sequential模型,Sequential是一系列网络层按顺序构成的

# -*- coding: utf-8 -*-
"""
Created on Sun Jan 7 22:17:57 2018
Keras快速上手
@author: BruceWong
"""

#导入Sequential模型
import keras
from keras.models import Sequential,Model
## Generate dummy data
import numpy as np
x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)

model = Sequential()
#model.add()
#将一些网络通过.add()堆叠起来,就构成一个完整的模型
from keras.layers import Dense,Activation
#model.add(Dense(units = 64,input_dim = 20)) #输入维度input_dim,指x数据的维度,列的数量
model.add(Dense(units = 64,input_shape = (20,)))#输入维度input_dim

model.add(Activation('relu'))
model.add(Dense(units = 10))
model.add(Activation('softmax'))
#完成模型的搭建后,我们需要使用.compile()方法来编译模型
model.compile(loss='categorical_crossentropy',optimizer = 'sgd',metrics = ['accuracy'])
#编译模型时必须指明损失函数和优化器,如果你需要的话,也可以自己定制损失函数。

#完成编译后,在训练数据集上按batch进行一定次数的迭代来训练网络
model.fit(x_train,y_train,epochs=5,batch_size = 32)
'''
#也可以手动一个个batch的数据送人网络中训练:
#model.train_on_batch(x_batch,y_batch)
'''

#随后可以对模型进行评估:
loss_and_metrics = model.evaluate(x_test,y_test,batch_size = 128)
#或者对新的数据进行预测:
classes = model.predict(x_test,batch_size = 128)