前沿追踪|用Python将Keras深度学习模型部署为Web应用程序( 三 )

现在 , 当用户点击submit并且信息正确时 , 根据输入的不同 , 输入将被发送到generate_random_start或generate_from_seed 。 这些函数使用经过训练的Keras模型生成具有用户指定的diversity和num_words的新颖专利 。 这些函数的输出依次被发送到其中一个模板random.html或者seeded.html作为一个网页 。
使用预先训练的Keras模型进行预测模型参数是经过训练的Keras模型 , 加载如下:
from keras.models import load_modelimport tensorflow as tfdef load_keras_model():"""Load in the pre-trained model"""global modelmodel = load_model('../models/train-embeddings-rnn.h5')# Required for model to workglobal graphgraph = tf.get_default_graph()load_keras_model()tf.get_default_graph()是基于这个要点的一种解决方案 。
我将不展示这两个util函数的全部内容(这里是代码) , 你需要理解的是它们使用经过训练的Keras模型以及参数 , 并对新的专利文摘进行预测 。
这些函数都返回带有格式化HTML的Python字符串 。 该字符串被发送到另一个模板以呈现为网页 。 例如 , generate_random_start返回格式为html,返回结果为random.html:
Random Starting Abstract

  • Home
{% block content %}{{input|safe}}{% endblock %}这里我们再次使用Jinja模板引擎来显示格式化的HTML 。 因为Python字符串已经被格式化为HTML , 我们所要做的就是使用{{input| safe}}(其中input是Python变量)来显示它 。 然后我们就可以在main.css设计这个页面的样式了, 和其他html模板一样 。
输出量generate_random_start选择一个随机的专利文摘作为开始序列 , 并根据该摘要进行预测 。 然后显示开始顺序 , RNN生成的输出和实际输出:
前沿追踪|用Python将Keras深度学习模型部署为Web应用程序该函数generate_from_seed采用用户提供的起始序列 , 然后使用经过训练的RNN对其进行构建 。 输出如下:
前沿追踪|用Python将Keras深度学习模型部署为Web应用程序尽管结果并不总是完全正确 , 但它们确实表明递归神经网络已经学习了英语的基础知识 。 经过训练 , 可以预测前50个单词中的下一个单词 , 并掌握了如何撰写具有说服力的专利文摘!
根据预测的多样性 , 输出可能是完全随机的或循环的 。
运行应用要自己运行该应用程序 , 你所需要做的就是下载存储库 , 导航到该deployment目录并输入python run_keras_server.py 。 这将立即使Web应用程序在localhost:10000可用 。
根据家庭WiFi的配置方式 , 你应该能够使用IP地址从网络上的任何计算机访问该应用程序 。
下一步你的个人计算机上运行的Web应用程序非常适合与朋友和家人共享 。 我绝对不建议你向家庭网络中的所有人开放此功能!为此 , 我们想要在AWS EC2实例上设置应用程序并将其提供给全世界(稍后发布) 。
为了改善应用程序 , 我们可以(通过main.css)更改样式 , 并可能添加更多选项 , 例如选择经过预先训练的网络的功能 。 关于个人项目的伟大之处在于 , 你可以根据需要扩展它们 。 如果你想使用该应用程序 , 请下载代码并开始使用 。
  • 代码下载:

前沿追踪|用Python将Keras深度学习模型部署为Web应用程序结论在本文中 , 我们看到了如何将训练有素的Keras深度学习模型部署为Web应用程序 。 这需要将多种不同的技术结合在一起 , 包括递归神经网络 , Web应用程序 , 模板 , HTML , CSS , 当然还有Python 。


推荐阅读