cntk吧 关注:50贴子:42
  • 0回复贴,共1
Keras的核心数据结构是一个模型,一种组织层的方法。模型的主要类型Sequential模型,层的线性堆叠。对于更复杂的架构,你应该用Keras的功能API。
这是一个Sequential模型:
from keras.models import Sequential
model = Sequential()
堆叠层是象.add()一样容易:
from keras.layers import Dense, Activation
model.add(Dense(output_dim=64,input_dim=100))
model.add(Activation("relu"))
model.add(Dense(output_dim=10))
model.add(Activation("softmax"))
一旦你的模型建立了,配置它的学习过程用.compile():
model.compile(loss='categorical_crossentropy',optimizer='sgd', metrics=['accuracy'])
如果需要,你能进一步配置你的优化器。Keras的核心原则是使得事情简单,允许用户全部控制(没有限制的控制容易对源代码进行扩展)。
from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy',optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
现在你可以以批处理的方式迭代你的训练数据:
model.fit(X_train, Y_train, nb_epoch=5,batch_size=32)
你也可以手动的给你的模型输入批处理的数据:
model.train_on_batch(X_batch, Y_batch)
评估性能用一行代码:
loss_and_metrics = model.evaluate(X_test,Y_test, batch_size=32)
或者产生预测在新的数据上:
classes = model.predict_classes(X_test,batch_size=32)
proba = model.predict_proba(X_test,batch_size=32)
建立一个问题回答系统,一个图像分类模型,一个神经图灵机,一个word2vec嵌入器或者任何一个其它模型都很快。这个深度学习背后的主意是简单的,为什么他们的实现时困难的呢?
为了更进一步的关于Keras的辅导,你可以查看:
Getting started with the Sequential model
Getting started with the functional API
在examples文件夹,你能发现更高级的模型:带有内存网络的问题回答,用堆栈方式LSTMs的文本产生,等等。


IP属地:北京1楼2016-12-22 11:14回复