TensorFlow笔记|Get Started

本系列推送主要参考: Stanford University CS20SI: Tensorflow for Deep Learning Research.

TensorFlow哲学 separates definition of computations from their execution 对定义计算,计算的执行,做了分离。

01

Tensor是什么?

Tensor是一个 n 维数组:

  • 0-d tensor: scalar (标量)
  • 1-d tensor: vector (向量)
  • 2-d tensor: matrix(矩阵)
  • 等等

02

数据流图

以上就是数据流图。


下面从最简单的图开始:

import tensorflow as tf a = tf.add(3, 5)

通过TensorBoard进行可视化:

为什么是 x, y ?

TF 自动地命名节点,当我们没有显示地指定节点名称时,

x = 3

y = 5

接下来,我们打印 a,看看发生什么:

print (a) Tensor("Add:0", shape=(), dtype=int32)

图graph只是定义了操作operations , 如何得到a的值?

03

执行环境:Session

创建一个Session,并在这个Session中执行上面的图,抓取到 a 的值。

创建sess,并在当前的sess中执行图:

with tf.Session() as sess: print(sess.run(a))

Session对象,封装了TF的执行环境。大家如果开发过多线程,分布式软件的话,对于Session的理解可能更容易些,Session尤其对于高并发环境,并行计算显得更重要。

记住

图graph只是定义了操作operations,但是操作operations只能在session里面执行,但是graph和session是独立创建的。

04

Tensorboard入门

以windows下的使用Tensorboard为例,如果在Linux系统下,请在个别地方做出修改。

首先,必须在终端启动tensorboard,如果采用anaconda安装地话,在目录Anaconda3\Scripts下有个启动项: tensorboard.exe,这就是tensorboard的服务端。在cmd窗口,cd 到这个目录。

然后,编写tensorboard,代码:

import tensorflow as tf with tf.name_scope('input1'): input1 = tf.constant(3.0,name='input1') with tf.name_scope('input2'): input2 = tf.constant(5.0,name='input2') output = tf.add(input1,input2,name='add') with tf.Session() as sess: output = sess.run(output) graph = tf.get_default_graph() #将日志文件写入到目录../log/下 writer = tf.summary.FileWriter('log',graph) writer.close()

这样在log文件夹下,增加了一个event文件,

再在终端,输入 tensorboard.exe --logdir = 刚在生成的log文件夹的绝对路径,回车,这样服务端就启动了,

接下来,启动客户端,即浏览器,输入localhost:6006,端口是6006,选中graphs,得到如下的可视化图:

原文发布于微信公众号 - 算法channel(alg-channel)

原文发表时间:2018-01-01

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

合格前端之打造一个属于自己的 UI 库

摘要: 轮子总得造上一造~ 一、项目介绍 vui : 一个私人的vue ui 组件库(移动端为主) 文档官网:https://brickies.github.i...

3058
来自专栏北京马哥教育

用Linux命令行生成随机密码的十种方法

Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它。例如,你可以通过数十种方法来生成随机密码。本文将介绍生成随机密码的十种方法。 ...

3056
来自专栏cloudskyme

设计模式(5)-己所不欲,施之于人(代理模式)

什么是代理?在我们的日常生活中的例子非常多。 比如上网有的时候使用代理服务器,通过代理上网,这就是代理的一个非常常见的例子。 从这里边可以看到3个对象:真实网路...

3374
来自专栏AI研习社

AI-Blocks:可以让任何人创建机器学习模型的所见即所得交互界面 | Github 项目推荐

AI-Blocks 是一个强大且直观的所见即所得交互界面,可以让任何人都创建机器学习模型。 ? AI-Block 通过可拖动的对象来创建简单的场景,该模型可以直...

37916
来自专栏伪君子的梦呓

用 Python 生成彩色动态二维码

4427
来自专栏debugeeker的专栏

《coredump问题原理探究》windows版5.1节基本数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

793
来自专栏Java帮帮-微信公众号-技术文章全总结

Mysql批量插入分析【面试+工作】

最近发现几个项目中都有批次插入数据库的功能,每个项目中批次插入的写法有一些差别,所以本文打算对Mysql的批次插入做一个详细的分析。

2052
来自专栏进击的程序猿

raft 系列解读(4) 之 etcd-raft学习

大多数Raft的实现都是整体设计,包括存储处理,消息序列化和网络传输,但是本raft库在实现的时候只实现了最核心的算法,换来了灵活性和性能,网络和disk IO...

1214
来自专栏我的博客

TP入门第六天

1、模型 模型类一般位于项目的Lib/Model目录下面,当我们创建一个UserModel类的时候,其实已经遵循了系统的约定。模型类的命名规则是除去表前缀的数据...

41911
来自专栏一个会写诗的程序员的博客

安装适用于 Java 的 TensorFlow安装适用于 Java 的 TensorFlow

TensorFlow 可提供在 Java 程序中使用的 API。这些 API 特别适合用于加载以 Python 语言创建的模型并在 Java 应用中运行这些模型...

571

扫码关注云+社区