在Arch Linux上使用Makepkg
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
在生产中使用复杂的机器学习模型时,传统的开发方法难以维护。在笔记本电脑或本地计算机上进行开发可能会很慢,无法为深度学习工程师训练机器学习模型。因此,我们通常会使用具有更强大硬件的云机器来训练和运行我们的机器学习模型。这是一个好习惯,因为我们抽象了复杂的计算,而是根据需要发出AJAX请求。在本教程中,我们将通过从头开始构建REST API,使预训练的深度学习模型Word2Vec可用于其他服务。
sudo用户词嵌入是自然语言处理和深度学习的最新发展,由于快速发展,这已彻底改变了这两个领域。词嵌入本质上是向量,每个向量对应于一个词,因此向量表示这些词。这可以通过某些现象来证明,例如的向量king - queen = boy - girl。单词向量用于构建从推荐引擎到实际理解英语的聊天机器人的所有内容。
单词嵌入不是随机的;它们是通过训练神经网络生成的。最近一种功能强大的词嵌入实现来自Google,名为Word2Vec,它通过预测语言中与其他词相邻的词来进行训练。例如,对于单词"cat",神经网络将预测单词"kitten"和"feline"。彼此靠近出现的单词直觉使我们可以将它们放置在向量空间中。
但是,实际上,我们倾向于使用其他大型公司(例如Google)的经过预先训练的模型,以便快速制作原型并简化部署过程。在本教程中,我们将下载并使用Google的Word2Vec预训练词嵌入。我们可以通过在工作目录中运行以下命令来做到这一点。
wget http://magnitude.plasticity.ai/word2vec/GoogleNews-vectors-negative300.magnitude
我们下载的字词嵌入模型采用某种.magnitude格式。这种格式允许我们使用SQL有效地查询模型,因此是生产服务器的最佳嵌入格式。由于我们需要能够读取.magnitude格式,因此我们将安装该pymagnitude软件包。我们还将安装flask该模型以供以后服务于该模型做出的深度学习预测。
pip3 install pymagnitude flask
我们还将使用以下命令将其添加到我们的依赖项跟踪器中。这将创建一个名为的文件requirements.txt并保存我们的Python库,以便我们以后可以重新安装它们。
pip3 freeze > requirements.txt
首先,我们将创建一个文件来处理单词嵌入的打开和查询。
touch model.py
接下来,我们将添加以下几行model.py以导入Magnitude。
from pymagnitude import Magnitude
vectors = Magnitude('GoogleNews-vectors-negative300.magnitude')
pymagnitude通过使用该query方法,我们可以使用包和深度学习模型,为一个单词提供一个参数。
cat_vector = vectors.query('cat')
print(cat_vector)
对于我们API的核心,我们将定义一个函数来返回两个单词之间的含义差异。这是用于诸如推荐引擎之类的大多数深度学习解决方案的骨干(即显示具有相似词的内容)。
我们可以使用similarity和most_similar 功能来玩这个功能。
print(vectors.similarity("cat", "dog"))
print(vectors.most_similar("cat", topn=100))
我们实现相似度计算器如下。下一部分将由Flask API调用此方法。请注意,此函数返回0到1之间的实数值。
def similarity(word1, word2):
return vectors.similarity(word1, word2)
我们将在名为service.py以下内容的文件中创建服务器。我们导入flask并request处理我们的服务器功能,然后similarity从前面编写的模块中导入引擎。
from flask import Flask, request
from model import similarity
app = Flask(__name__)
@app.route("/", methods=['GET'])
def welcome():
return "Welcome to our Machine Learning REST API!"
@app.route("/similarity", methods=['GET'])
def similarity_route():
word1 = request.args.get("word1")
word2 = request.args.get("word2")
return str(similarity(word1, word2))
if __name__ == "__main__":
app.run(port=8000, debug=True)
我们的服务器相当简陋,但是可以通过使用@app.route装饰器创建更多路由来轻松扩展。
我们可以通过运行以下命令来运行Flask服务器,以激活我们的虚拟环境,安装软件包并运行其关联的Python文件。
source venv/bin/activate
pip3 install -r requirements.txt
python3 service.py
我们的服务器将在提供localhost:8000。我们可以在以下位置查询数据库localhost:8000/similarity?word1=cat&word2=dog并在浏览器中或通过另一个AJAX客户端查看响应。
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息