赞
踩
《SDCC 2017人工智能技术实战》
Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:
简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
支持CNN和RNN,或二者的结合
无缝CPU和GPU切换
Keras适用的Python版本是:Python 2.7-3.5
中文文档:
http://keras-cn.readthedocs.io/en/latest/
pytorch 是另一款有类似功能的框架。
文本数据 : 拆分、索引、标注,主要针对英文。
序列数据:补齐、n-gram、skip-gram
标注类[tokenizer]能批量处理多个文本文件,统一进行索引,拆分和补齐工作。
图像数据:翻转、切割、旋转
Keras自带一个具备多种图像变换功能的数据生成器。
实践中会将生成器生成的随机变换的数据和原始数据叠加进行拟合,效果更好。
Keras的核心数据结构是“模型”,模型是一种组织网络层的方式。
Keras中主要的模型是
Sequential模型,Sequential是一系列网络层按顺序构成的栈。
Sequential模型如下:
from keras.models import Sequential
model = Sequential()
将一些网络层通过.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"))
完成模型的搭建后,编译模型
model.compile(loss='categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
编译模型时必须指明损失函数和优化器,如果需要的话可以自己定制损失函数。
在训练数据上按batch进行一定次数的迭代来训练网络:
model.fix(x_train, y_train, epochs=5,batch_size=32)
- 所有参数都要重新训练
输出CNTK可用模型
import cntk as C
C.combine(keras_model.model.outputs).save('trained_cntk_model')
输出TensorFlow可用模型
import keras.backend as K
session=K.session()
Tf_saver=tf.train.Saver()
Tf_saver.save(sess=session,save+_put=output_path)
模型打分只需要执行前馈网络,计算量小
neocortex.js将需要统一到服务器的打分计算分散到用户的浏览器或者任何能执行.js程序的地方
适于轻量化应用
http://scienceai.github.io/neocortex/mnist_mlp/
将keras训练好的模型输出:
- 模型结构输出到json文件
- 模型权重输出到HDF5文件
在.js里指定模型文件
mm = new NeuralNet({
modelFilePath:'',
arrayType:'float64',
useGPU:false
})
nn.predict()方法即可进行打分操作
简化模型构建不用自己定义基本的权重要素,keras自动根据数据完成
不用明确地构造组合函数
激活函数可以在网络层直接作为选项
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。