Keras简介

1.Keras工具库简介

1.1keras简介
今天给大家讲的是keras,keras现在是一个非常流行的工具库,包括tensorflow已经把keras合并到了自己的主代码当中了,大家可以直接tf.keras就可以直接调用其中的工具库了。单独讲keras的原因是因为keras有他独特的应用场景如实验室、数据竞赛等小型环境中,使用keras,工程师们可以将更多时间花在设计网络模型上而不是coding上,而且keras是所有工具库当中最容易上手的工具库之一。
下面简单介绍一下Keras
Keras是一个高层神经网络API,它本身就是一个上层封装的工具库,它是由纯Python编写而成并基Tensorflow、Theano、mxnet以及CNTK后端。keras非常容易上手可以说是为快速实验而生能将你的idea迅速转换为结果,适合于小型环境(实验室、数据竞赛),但在工业界由于分布式底层封装不好,所以大型项目keras并不能很好的发挥其作用。但是keras也有它独特的优点如下1.简易和快速的原型设计2**.支持CNN与RNN**,或两者结合3.无缝CPU与GPU切换
1.2keras安装
在安装keras之前需要安装numpy、scipy、pyyaml、HDF5、h5py,如果有N卡,在GPU版本下keras配置方法,由于本机安装CUDA9.0、cuDNN7.1,所以介绍tensorflow-gpu1.9,keras-2.0.0版本,最新版本可能不行,记住tensorflow与keras版本要对应。安装方式具体过程:
Windows:https://keras-cn.readthedocs.io/en/latest/for_beginners/keras_windows/
Linux:https://keras-cn.readthedocs.io/en/latest/for_beginners/keras_linux/
1.3快速上手keras
如果大家需要参加数据科学比赛不如跟我一起学习keras,我们用序贯模型来举例写一个小demo,用keras构建网络主要分三个模块

第一模块数据准备
x_train = np.random.random((100, 100, 100, 3))#100张图片宽高100,3彩色图RGB三个颜色通道
y_train = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)
x_test = np.random.random((20, 100, 100, 3))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(20, 1)), num_classes=10)

第二模块模型构建
第一步初始化模型
from keras.models import Sequential#1.引入序贯模型
model = Sequential()##初始化模型

第二步.add添加网络层
将一些网络层通过.add()堆叠起来,就构成了一个模型:
from keras.layers import Dense, Activation
model.add(Dense(units=64, input_dim=100))
model.add(Activation(“relu”))
model.add(Dense(units=10))
model.add(Activation(“softmax”))

第三步编译模型
完成模型的搭建后,我们需要使用.compile()方法来编译模型:
model.compile(loss=‘categorical_crossentropy’, optimizer=‘sgd’, metrics=[‘accuracy’])
编译模型时必须指明损失函数和优化器,如果你需要的话,也可以自己定制损失函数。Keras的一个核心理念就是简明易用,同时保证用户对Keras的绝对控制力度,用户可以根据自己的需要定制自己的模型、网络层,甚至修改源代码。
#也可以自定义SGD
from keras.optimizers import SGD
model.compile(loss=‘categorical_crossentropy’, optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
完成模型编译后,我们在训练数据上按batch进行一定次数的迭代来训练网络

第三模块导入数据训练测试
#传入数据训练
model.fit(x_train,y_train,epochs=5,batch_size=32)#epochs指总共迭代轮次,batch_size指的是一个批量的数据有多少样本
model.train_on_batch(x_batch,y_batch)#送入网络中开始训练
#测试集上评估效果
loss_and_metrics = model.evaluate(x_test,y_test,batch_size=32)
#实际预测
classes = model.predict(x_test,batch_size=128)

#so easy~

你可能感兴趣的:(Python,深度学习,计算机视觉,AI工具库)