tensorflow.js 的服务器端安装 - 分享自 @开发者头条

简介: tensorflow.js 的服务器端安装 - 分享自 @开发者头条

tensorflow是谷歌推出的一款神经网络算法库,利用这个算法库可以实现深度学习。目前这个算法库已经绑定了多种开发语言,而tensorflow.js就是Javascript语言的具体实现,在tensorflow的官网上有专门的Javascript板块,地址:https://www.tensorflow.org/js。tensorflow.js的最初版本只能运行在浏览器中,借助webgl调用GPU资源实现快速运算,但是毕竟浏览器功能有限,项目中也不太可能会把一个深度学习的流程丢到前端去处理。后来官方又推出了两个node版本,一个基于CPU,另一个基于GPU。本文主要介绍这两种库的后端安装方法。

前期准备

  1. 确定服务器的操作系统和硬件是否符合安装要求,参考https://www.npmjs.com/package/@tensorflow/tfjs-node
  2. 电脑或者服务器一定要安装python2.7的环境(注意不能安装python3)
  3. 使用npm全局安装node-gyp这个库
  4. windows需要安装vs studio(需要有vcxproj编译组件),mac需要安装xcode
  5. gpu版本需要确认显卡是否能够支持(注:mac所有系统都不支持gpu),参考https://developer.nvidia.com/cuda-gpus
  6. gpu版本需要安装好显卡驱动
  7. gpu版本需要安装CUDA工具包,推荐10.0,网址:https://developer.nvidia.com/cuda-toolkit-archive
  8. gpu版本需要下载CUDNN SDK,版本必须和上一步中的CUDA工具包版本匹配,下载解压后把对应文件夹的文件覆盖到上一步的安装目录中,网址https://developer.nvidia.com/cudnn,这里下载前需要注册会员
  9. gpu版本需要添加CUDA、CUPTI和cuDNN到系统环境变量,windows和linux方法不同,参考https://www.tensorflow.org/install/gpu

如果安装CPU版本,只需要准备1-4步,GPU版本则需要1-9的所有步骤。

到这里,你已经完成了tensorflow服务器版本的一半安装。

安装tensorflow到node项目

接下来我们需要把@tensorflow/tfjs-node(@tensorflow/tfjs-node-gpu)安装到项目依赖中,其实只需要下面这一步:

npminstall @tensorflow/tfjs-node

或者

npminstall @tensorflow/tfjs-node-gpu

运气好的话你会看到一个很长的下载过程,一大串代码编译过程,最后安装成功!但是!

绝大多数都会遇到莫名其妙的问题,譬如卡在了下载进度上,或者报一些node-gyp的错误。一般来说,@tensorflow/tfjs-node如果安装出现问题,多装两次就行。但是@tensorflow/tfjs-node-gpu出问题的话,就需要具体问题具体分析。

GPU版本安装问题解决思路

  1. 卡在下载进度条的问题:

这个主要是由于gpu版本需要下载一个将近250M的libtensorflow包,而国内访问谷歌服务器又不是特别稳定,下载过程经常掉线。解决方法是可以间断性地重复执行npm rebuild @tensorflow/tfjs-node-gpu -f。或者修改node_modules/@tensorflow/tfjs-node-gpu/scripts/install.js文件,将其中的storage.googleapis.com域名修改成本地的https服务,然后用下载工具单独把libtensorflow包下载到https目录,通过本地下载实现稳定安装。另外可能有同学考虑用科学上网的方法获取稳定下载,本人亲测效果不咋地。

  1. node-gyp错误:

下载libtensorflow包后,tensorflow的钩子会继续执行代码编译,node-gyp会调用本地环境对下载源码进行编译。编译过程出错就会出现node-gyp的错误。

这种编译错误大多数都是本地编译环境缺失导致的,譬如windows中vs studio缺失相应的项目编译组件,这种问题一般通过下载缺失的组件就能完美解决!

CPU vs GPU

GPU版本的tensorflow一定比CPU版本的快吗?我一开始折腾安装了两个版本的tensorflow就是想看看GPU到底比CPU快了多少。实际我的项目主要运行了LSTM时序神经网络,测试跑下来的结果傻了眼,GPU速度只有CPU的2/3。为什么呢?Tensorflow的一位参与者给出了答案,地址在这里: https://github.com/tensorflow/tfjs/issues/468。大意就是:GPU版本绝大多数的运行时间都消耗在了数据传输过程,对于一些相对单一神经网络结构,速度反而会比CPU版本慢,但是像加入了池化层的这种复杂神经网络结构,GPU的速度会快得多。所以根据网络结构选择对tensorflow的版本非常重要!

结语

上面这个故事告诉我们,付出的努力不一定和结果成正比,选择大于努力。

(全文完)

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
5月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
3月前
|
Shell Linux 网络安全
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
565 3
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
|
4月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
310 18
|
4月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
330 15
|
4月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
521 13
|
5月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
6月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
1305 11
|
5月前
|
Ubuntu Linux
如何在 Ubuntu 服务器上安装桌面环境(GUI)
如果你有任何问题,请在评论区留言。你会在服务器上使用 GUI 吗?参照本文后你遇到了什么问题吗?
716 0
|
6月前
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
166 2