大约有半年没有写博客了,奔波于上海这座魔都之中。险些忘了自己是个有梦想的全栈工程师
书接上回,由于个人非常厌恶python的语法,半年前发现了tensorflow.js这个宝贝(下简称tfjs),喜出望外,从18年4月Google发布的0.0.1版本至今,都没有一个完好的node版本,之前我就有吐槽过这个问题,深度学习居然只能在browser中跑,而即使在node中引入tfjs也无法保存训练模型,这样的训练真的没有什么意义啊,直到这几天辞职在家,打开npm官网,发现了一个tfjs的项目分支,tfjs-node。
终于可以给npm上的tfjs归个类了。注意:
@tensorflow/tfjs这个项目是偏向前端,浏览器而生的
@tensorflow/tfjs-node是针对后端node,所以如果是在服务器或者PC端运行则应该请使用这个版本
但是本人在使用tfjs-node的过程中发现他的安装还是有点繁琐的,不是npm install这么简单
首先根据官网的介绍,windows下需要先安装python2.x系列,所以先到python官网下载2.7版本的python
package.json文件
{
"name": "",
"description": "",
"version": "0.0.1",
"dependencies": {
"@tensorflow/tfjs-node": "latest"
}
}
接下来
npm install
以上操作是极有可能出现如下错误:
整个错误其实很模糊,而且可以清楚的看到其强调了这不是npm的错误。
这是怎么回事呢,原来前面有提到,tfjs-node依赖于python和C++的,其实是一种将node和python下的tensorflow框架融合的技术,我猜测tfjs-node并没有完整使用js语言开发出神经网络框架,而是需要大量调用原生tf(C++,py)的库。
所以这里报的错误应该是执行python脚本和其他编译过程抛出的错误,而npm并不能定位到这样的异常或错误。
不过经过我的成功安装,有以下几点注意:
- 可能需要安装msbuild,这应该是用到了一些c++的编译工作(笔者之前没有安装一直报找不到的错,但不确定是不是必要)
npm install -g --production windows-build-tools
- 翻越一道墙,执行install.js的过程估计请求了很多不可告人的网站哦,请自行shadowsock全局模式
- 删除多余的node_modules,我发现tfjs和tfjs-node项目的module似乎是冲突的,请不要同时安装两项,如果搞不清冲突在哪,建议删除整个node_modules目录即可(建议在构建tfjs-node的项目前,就是一个空项目)
rm -rf .\node_modules\
看到这一步基本就是成功了,这个download过程应该是要跨墙的