斯坦福tensorflow教程(一) tensorflow概述Tensorflow简介为什么选择tensorflow基于Tensorflow的框架资源Tensorflow基础数据流图 Data Flo

课程链接:https://web.stanford.edu/class/cs20si/syllabus.html

Tensorflow简介

TensorFlow™ 是一个使用数据流图进行数值计算的开放源代码软件库。图中的节点代表数学运算,而图中的边则代表在这些节点之间传递的多维数组(张量)。借助这种灵活的架构,您可以通过一个 API 将计算工作部署到桌面设备、服务器或移动设备中的一个或多个 CPU 或 GPU。TensorFlow 最初是由 Google Brain 团队(隶属于 Google 机器智能研究部门)中的研究人员和工程师开发的,旨在用于进行机器学习和深度神经网络研究。但该系统具有很好的通用性,还可以应用于众多其他领域。中文官网

为什么选择tensorflow

  • Python 接口
  • 便捷性/灵活性:可以将计算模型部署到一个或多个桌面、服务器、移动等多种设备(CPUs or GPUs);适用于多种系统 Raspberry Pi, Android, Windows, iOS, Linux到 server farms
  • 可视化:了解下TensorBoard
  • 可以保存/还原模型
  • 自动微分(Auto-differentiation autodiff )
  • 庞大社区,非常流行(>30万提交次数,>8.5万相关开源库)
  • 很多惊艳的基于tensorflow的项目
  1. WaveNet: A Generative Model for Raw Audio (DeepMind, 2016)
  1. Dermatologist-level classification of skin cancer with deep neural networks (Esteva, Kuprel, et al., Nature 2017)
  1. Magenta (Google)

Use machine learning to create compelling art and music. Their projects are really fun! For example, please check out Draw Together with a Neural Network.

基于Tensorflow的框架

有很多基于Tensorflow构建的APIs,比如一些流行的有Keras,TFLearn和Sonnet.这些高级框架可以实现更快的实验步骤(仅需很少代码),同时这些框架也吸引了大量用户。然而Tensorflow主要的目的不是提供“开箱即用”的机器学习方法。而是,Tensorflow提供了一套强大的计算函数和类,允许用户从实验中定义自己的model。这个过程可能非常复杂,但是可以提供了更多可能性,你可以根据自己的想法,基于Tensorflow构建任何结构的模型

资源

  • The official documentations
  • TensorFlow official sample models
  • StackOverflow 也有一些英文指导书:
  • Aurélien Géron’s Hands-On Machine Learning with Scikit-Learn and TensorFlow (O’Reilly, March 2017)
  • François Chollet’s Deep Learning with Python (Manning Publications, November 2017)
  • Nishant Shukla’s Machine Learning with TensorFlow (Manning Publications, January 2018)
  • Lieder et al.’s Learning TensorFlow A Guide to Building Deep Learning Systems (O’Reilly, August 2017)

Tensorflow基础

为了理解Tensorflow,我们首先要明确以下几点:

  • 使用图 (graph) 来表示计算任务.
  • 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
  • 使用 tensor 表示数据.
  • 通过 变量 (Variable) 维护状态.

数据流图 Data Flow Graphs

Tensorflow将计算与执行分离开来: 阶段1:创建一张图,定义好图中的就算 阶段2:使用session(会话)去执行图中的计算

什么是tensor

tensor 看作是一个 n 维的数组或列表.

执行下面并不会输出8,而是输出tensor相关信息

需要创建一个session,然后在session计算图,取出a的值

为了取回操作的输出内容, 可以在使用 Session 对象的 run() 调用 执行图时, 传入一些 tensor, 这些 tensor 会帮助你取回结果. 在之前的例子里, 我们只取回了单个节点 state, 但是你也可以取回多个 tensor:

input1 = tf.constant(3.0)
input2 = tf.constant(2.0)
input3 = tf.constant(5.0)
intermed = tf.add(input2, input3)
mul = tf.mul(input1, intermed)

with tf.Session() as sess:
  result = sess.run([mul, intermed])
  print result

# 输出:
# [array([ 21.], dtype=float32), array([ 7.], dtype=float32)]

需要获取的多个 tensor 值,在 op 的一次运行中一起获得(而不是逐个去获取 tensor)。

更多关于Tensorflow的计算和操作参考官方文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

干货 | 谷歌BERT模型fine-tune终极实践教程

从11月初开始,Google Research就陆续开源了BERT的各个版本。Google此次开源的BERT是通过TensorFlow高级API—— tf.es...

2391
来自专栏瓜大三哥

Scrambling/Descrambling

信道加扰 加扰原因 在通信中,如果出现连"0"和连"1",则 l产生交调串音。连续具有单频分量,与载波或者已调信号产生交调,对临近信道带来干扰。 l可能丢失同步...

2857
来自专栏PPV课数据科学社区

从Caffe2到TensorFlow,十种框架构建相同神经网络效率对比

近日,Ilia Karmanov 在 Medium 发表了一篇题为《Neural Net in 10 Frameworks (Lessons Learned)》...

3608
来自专栏机器之心

资源 | DeepPavlov:一个训练对话系统和聊天机器人的开源库

选自GitHub 机器之心编译 参与:思源、刘晓坤 本文介绍了一个构建端到端对话系统和训练聊天机器人的开源项目 DeepPavlov,该开源库的构建基于 Ten...

3534
来自专栏AI科技评论

ICML论文 | Facebook分享机器学习研究开源平台代码

正在美国纽约举行的国际机器大会(ICML)上,我们很难忽略 Facebook 研究科学家们的身影——他们呈现三篇论文、主导四场研讨会、并主讲两场教程。其中包括 ...

37911
来自专栏CDA数据分析师

机器学习实战:8大分类器识别树叶带源码

今天我想送给大家两句话:1:在这个浮躁的社会中,每个人都想找到捷径,那么我想认真踏实地做好一件事也便是最大的捷径了。2:不要管别人做什么,有自己的目标,可能你现...

2125
来自专栏码神联盟

图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能

说到语音识别、语音翻译、图像识别、人脸识别等等,现在已经非常非常非常普及了,看过‘最强大脑’的朋友,也应该对‘小度’这个机器人有所了解,战胜国际顶尖的‘大脑’-...

6694
来自专栏人工智能头条

通过Amazon Machine Learning建立一个数值回归模型

1705
来自专栏人工智能头条

东北大学研究生:用强化学习玩Chrome里的恐龙小游戏

1775
来自专栏量子位

看文本知语义:谷歌推一步到位自然语言理解框架SLING | 论文+代码

夏乙 编译自 Google Research Blog 量子位 出品 | 公众号 QbitAI 大多数自然语言理解(NLU)系统分析语言的过程是一条由分析步骤组...

3949

扫码关注云+社区