来自前端开发者的灵魂发问:TensorFlow.js 好学吗?
本文作者
蔡善清(Shanqing Cai),谷歌公司软件工程师,深度参与了 TensorFlow 和 TensorFlow.js 的开发工作。从清华大学毕业后,他前往约翰斯 · 霍普金斯大学和麻省理工学院深造,并取得了麻省理工学院博士学位。 《JavaScript深度学习》作者。
“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 的 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 官方配套教程,现已在图灵社区独家上线,有意向的同学欢迎来试读。
深度学习扛鼎之作《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 好学吗?相关推荐
- 谷歌开发者大会焦点:TensorFlow.js可制作微信小程序,Android 10原生支持5G,TF2.0大更新...
2016 年谷歌开发者大会在中国首次举办,2017 年谷歌宣布成立"AI 中国研发中心",2018年谷歌的"AI+小程序"的产物"猜画小歌" ...
- 为什么 那么多 前端开发者都想学 Vue.js
根据JavaScript 2017 前端库状况调查 Vue.js是开发者最想学的前端库.我在这里说明一下我为什么认为这也是和你一起通过使用 Vue 构建一个简单的 App 应用程序的原因. 我最近曾与 ...
- 智能化时代:前端开发者进阶史
文中为大家介绍的算法工程框架 Pipcook,它是一款面向前端开发者的机器学习框架,我们希望它会成为前端开发者学习和实践机器学习的平台,从而推进前端智能化的进程. 助力 2020 双十一 imgcoo ...
- tensorflow sigmoid 如何计算训练数据的正确率_“来自蒙娜丽莎的凝视”— 结合 TensorFlow.js 和深度学习实现...
客座博文 / Emily Xie,软件工程师 背景 坊间传闻,当您在房间里走动时,蒙娜丽莎的眼睛会一直盯着您. 这就是所谓的"蒙娜丽莎效应".兴趣使然,我最近就编写了一个可互动的数 ...
- 前端开发者如何用JS开发后台
学习交流微信: 万能的JavaScript 有一条 Atwood 定律:any application that can be written in JavaScript, will eventual ...
- 前端人工智能?TensorFlow.js 学会游戏通关
题注:如果喜欢我们的文章别忘了点击关注阿里南京技术专刊呦~ 本文转载自 阿里南京技术专刊-知乎,欢迎大牛小牛投递阿里南京前端/后端开发等职位,详见 阿里南京诚邀前端小伙伴加入~. 关键字:Tensor ...
- html鼠标悬停改变背景,js设置鼠标悬停改变背景色实现详解_哒哒_前端开发者
看了网上那么多的 this is test! }); function changBkColor(obj){ obj.οnmοuseοver=function(){ this.className=&q ...
- JavaScript武力值飙升!用TensorFlow.js轻松实现在浏览器里搞深度学习......
近年来,AI 与人类的生活越来越紧密,慢慢变得无处不在.那么提到 AI ,我们会想到什么?小编最先想到的是机器人.早在小学作文中,我就写到 2021 年到处都是机器人,机器人汽车到处飞.结果 2021 ...
- web前端怎么获取cookie?新手前端开发者需了解
在前端开发中有些情况下需要获取用户的cookies,这样当用户下次登录网站的时候就不需要重复的去调整功能,那么你知道如何去实现吗? 先放一段完整的JS代码,后面都有功能备注,大家可以自己先看一下. 下 ...
最新文章
- 【Android 安装包优化】动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )
- 李开复:白手起家的10个步骤
- pdm生成mysql sql语句_如何用Powerdesigner的PDM生成数据库
- apache压力测试
- 好看的php验证码,一漂亮的PHP图片验证码实例
- What's the best way to get rid of get parameters from url string?
- 深入浅出自定义标签(二)生成javascript
- 振华重工携手微软,开启港口运营数字化转型新纪元
- 世纪互联云和华为共同打造的数据中心是一个很好的一步标志!
- 查看mysql 更新命令_MySQL UPDATE 查询
- 关于数据库的一些基本操作语句
- MATLAB dsolve 函数求解偏微分方程一例
- 02怎么学数据结构?
- JQ插件OrgChart实现组织结构图
- NOIP模拟赛 czy的后宫5
- 谁在用生命为错误买单?
- 金九银十的你准备好了吗?Python 100道基础面试题先收藏!【附答案】
- Qt中qrc文件编译后缺少预编译头文件
- Python爬虫4.2 — ajax(动态网页数据抓取)用法教程
- SSM项目之注册页面知识点整理
热门文章
- java确定一个整数是否溢出,java-判断一个整数是不是回文,考虑溢出
- linux mysql 权限设置_Linux下mysql新建账号及权限设置
- c# oldb连接_C#使用 OleDbConnection 连接读取Excel
- sql 游标_SQL基础丨游标
- php goto call,Php中的goto用法
- php个人中心代码,wordpress个人中心页author_user的相关判断处理php代码
- mysql每日备份_Linux下如何实现Mysql数据库每天自动备份定时备份
- excel打不开怎么修复_SD卡坏了怎么办?一招教你拯救文件!
- 【c语言】蓝桥杯算法提高 选最大数
- python 读取图片成为一维数组_python+opencv 图像的数组和矩阵操作