美文网首页我爱编程
深度学习框架Keras使用

深度学习框架Keras使用

作者: xiaorun | 来源:发表于2017-02-08 14:25 被阅读0次

    以下来自 Keras 中文文档的解释,转载经中文文档作者@BigMoyan

    授权,详细请看http://keras-cn.readthedocs.io/
    Keras是基于Theano和TensorFlow的深度学习库,其特点如下:
    简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
    支持CNN和RNN,或二者的结合
    支持任意的链接方案(包括多输入和多输出训练)
    无缝CPU和GPU切换

    先来了解一下深度学习的基本概念
    Keras的核心数据结构是“模型”,模型是一种组织网络层的方式。Keras中主要的模型是Sequential模型,Sequential是一系列网络层按顺序构成的栈。你也可以查看泛型模型来学习建立更复杂的模型
    Sequential模型如下
    from keras.models import Sequentialmodel = Sequential()

    将一些网络层通过.add()堆叠起来,就构成了一个模型:

    from keras.layers import Dense, Activationmodel.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的一个核心理念就是简明易用同时,保证用户对Keras的绝对控制力度,用户可以根据自己的需要定制自己的模型、网络层,甚至修改源代码。

    from keras.optimizers import SGDmodel.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
    

    完成模型编译后,我们在训练数据上按batch**进行一定次数的迭代训练,以拟合网络。

    model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)
    

    当然,我们也可以手动将一个个batch的数据送入网络中训练,这时候需要使用:

    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的例子

    ├── addition_rnn.py├── antirectifier.py├── babi_memnn.py├── babi_rnn.py├── cifar10_cnn.py├── conv_filter_visualization.py├── deep_dream.py├── image_ocr.py├── imdb_bidirectional_lstm.py├── imdb_cnn.py├── imdb_cnn_lstm.py├── imdb_fasttext.py├── imdb_lstm.py├── lstm_benchmark.py├── lstm_text_generation.py├── mnist_cnn.py├── mnist_hierarchical_rnn.py├── mnist_irnn.py├── mnist_mlp.py├── mnist_net2net.py├── mnist_siamese_graph.py├── mnist_sklearn_wrapper.py├── mnist_swwae.py├── mnist_transfer_cnn.py├── neural_doodle.py├── neural_style_transfer.py├── pretrained_word_embeddings.py├── reuters_mlp.py├── stateful_lstm.py├── variational_autoencoder.py└── variational_autoencoder_deconv.py

    下面是小润收集利用深度学习库写神经网络的一些例子

    deep-learning-demo

    相关文章

      网友评论

        本文标题:深度学习框架Keras使用

        本文链接:https://www.haomeiwen.com/subject/bqgvittx.html