来自前端开发者的灵魂发问:TensorFlow.js 好学吗?

本文作者

蔡善清(Shanqing Cai),谷歌公司软件工程师,深度参与了 TensorFlow 和 TensorFlow.js 的开发工作。从清华大学毕业后,他前往约翰斯 · 霍普金斯大学和麻省理工学院深造,并取得了麻省理工学院博士学位。 《JavaScript深度学习》作者。

 

来自前端开发者的灵魂发问:TensorFlow.js 好学吗?_第1张图片

“TensorFlow.js 好学吗?入门大约需要多长时间?” 这个问题问得很笼统,所以需要分情况讨论。以下所有讨论假设你熟悉 JavaScript(以下部分链接可能需要VPN支持)。

01

情况1.  你只是想用一些基于 TensorFlow.js 的模型来实现一些网页里的功能,比如图像里的物体检测。

那你不需要系统学习TensorFlow.js,只需要用现成的、被包装成 NPM 包的模型。比如:

  • MobileNet(图像分类)

    https://www.npmjs.com/package/@tensorflow-models/mobilenet

  • COCO-SSD(物体检测)

    https://www.npmjs.com/package/@tensorflow-models/coco-ssd

  • PoseNet(人体姿态识别)

    https://www.npmjs.com/package/@tensorflow-models/posenet

  • SpeechCommands(声音识别)

    https://www.npmjs.com/package/@tensorflow-models/speech-commands

这些模型的 NPM 页面都有比较详细的代码实例,照抄就可以了。

另外还有一些第三方开发的现成模型包,比如 ML5,里面有 pix2pix,SketchRNN 等好玩的模型 https://github.com/ml5js/ml5-library。

 

还有人脸识别和关键点标注的 face-api.js。

https://itnext.io/face-api-js-javascript-api-for-face-recognition-in-the-browser-with-tensorflow-js-bcc2a6c4cf07

0

02

情况2.  你是机器学习工程师,有一个 Python 训练好的模型想要在网页里面做推断。

那你可以学习一下 TensorFlow.js Converter 的使用。官网上有具体教程:

  • 针对 Keras 模型

    https://www.tensorflow.org/js/tutorials/conversion/import_keras

  • 针对TensorFlow SavedModel

    https://www.tensorflow.org/js/tutorials/conversion/import_saved_model

03

情况3.  作为熟悉各种 Python 框架的机器学习工程师,你想学习 TensorFlow.js 这一 JavaScript 框架,用来做训练、迁移学习、推断等。

来自前端开发者的灵魂发问:TensorFlow.js 好学吗?_第2张图片

这里的好消息是:TensorFlow.js 的 API 和 Python 里的 TensorFlow 和 Keras 基本上是对标的。所以对于你来说学习曲线应该很平缓:

  • 底层op level的API直接对应到tf.*和tf.math.*。这里要指出的是,TensorFlow.js采用的是eager execution模式,所以不需要管计算图,tf.Session等概念。

  • 高层layers API直接对应到Keras。见官方撰写的“给Keras用户的TensorFlow.js” https://www.tensorflow.org/js/guide/layers_for_keras_users 。

04

情况4.  你想要用 TensorFlow.js 作为工具,来从头自学机器学习和深度学习技术。

那你可以看一下官方的开源代码例子库 https://github.com/tensorflow/tfjs-examples ,这里面现在有近30个左右的模型,涵盖深度学习里面的基本概念,包括:

  • 数据的表示和输入流水线

  • 底层张量运算

  • 分类和回归

  • 目标函数,训练循环

  • 超参数优化

  • 各种问题类型:图像,文字

  • 各种模型类型:线性回归,Multi-layer perceptron,卷积网络(CNN),循环网络(RNN),强化学习,生成性对抗网络(GAN)等

  • 模型的序列化

  • 数据和模型的可视化

  • 各种运行环境,包括浏览器和Node.js

官方撰写的配套的书籍 Deep Learning with JavaScript 中文版《JavaScript 深度学习》,目前已在图灵出版(详情见文末)。

本文经作者授权,转载请联系出处

知乎链接:

https://www.zhihu.com/question/311028398/answer/588403059


上面提到的 TensorFlow.js 官方配套教程,现已在图灵社区独家上线,有意向的同学欢迎来试读。

来自前端开发者的灵魂发问:TensorFlow.js 好学吗?_第3张图片

 深度学习扛鼎之作《Python深度学习》姊妹篇

《JavaScript深度学习》

重磅上市

本书教你使用 TensorFlow.js 构建强大的 JavaScript 深度学习应用程序。谷歌大脑团队官方解读 TensorFlow.js,前端工程师不可错过的 AI 入门书。

本书作者阵容

蔡善清(Shanqing Cai)

谷歌公司软件工程师,深度参与了 TensorFlow 和 TensorFlow.js 的开发工作。从清华大学毕业后,他前往约翰斯·霍普金斯大学和麻省理工学院深造,并取得了麻省理工学院博士学位。

斯坦利·比列斯奇(Stanley Bileschi)

谷歌公司 TensorFlow 可用性团队技术负责人,领导团队构建了 TensorFlow.js高阶 API。

埃里克·D. 尼尔森(Eric D. Nielsen)

谷歌公司软件工程师,深度参与了 TensorFlow.js 的开发工作。

弗朗索瓦·肖莱(François Chollet)

Keras 之父,TensorFlow 机器学习框架贡献者,Kaggle 竞赛教练,目前任职于谷歌公司,从事人工智能研究,另著有《Python 深度学习》。

| 图灵抢读

本书目前仅在图灵社区有售。只需1元,可以提前解锁本书20%的干货内容,在达成继续阅读意向后,原价129元的书,仅需88元就可以获得抢读期免费在线阅读全本+一本纸书,快来扫码抢读吧。

来自前端开发者的灵魂发问:TensorFlow.js 好学吗?_第4张图片

图 灵 社 群

来自前端开发者的灵魂发问:TensorFlow.js 好学吗?_第5张图片

来自前端开发者的灵魂发问:TensorFlow.js 好学吗?_第6张图片

你可能感兴趣的:(人工智能,机器学习,深度学习,编程语言,tensorflow)