专栏首页算法channelTensorFlow笔记|Get Started

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),作者:alg-flody

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Tensorflow|Session和InteractiveSession

    01 Session 每一个Session都维护各自变量的副本。 如下所示: W = tf.Variable(10) sess1 = tf.Session()...

    double
  • 盘点互联网公司最常见的面试编程题

    互联网公司面试,笔试环节或第一面往往都是现场做编程题。很多面试的老铁反映说,败在了编程题上,去不了自己心仪的公司,拿不到想要的待遇。

    double
  • BAT面试题13:请简要说说一个完整机器学习项目的流程

    随着机器学习(ML)成为每个行业的重要组成部分,对机器学习工程师(MLE)的需求急剧增长。MLE需要将机器学习技能与软件工程专业知识相结合,为特定应用程序找到高...

    double
  • EasyUI使用笔记——Datagrid的使用及排序

    Datagrid的使用: 添加一个table,其中class设置为easyui-datagrid,在data-options中设置datagrid的参数,我这里...

    徐大嘴
  • 用engineercms建立项目管理平台

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

    hotqin888
  • Android Studio 遇到问题集锦

    Android Studio First Run 检测 Android SDK 及更新,由于众所周知的原因,我们会「Unable to access Andro...

    mzlogin
  • tomcat源码解读一 Digester的解析方式

    1    Digester Digester在tomcat中的作用是对conf下的server.xml文件进行实例化,其是从Catalian这个组件开始,创建D...

    cfs
  • 大话JMeter3|如何借助工具搞定高颜值的性能监控报告

    上节课爱画漫画的小哥哥教我们如何正确get参数传递和HTTP正确使用。尤其是在无UI下进行接口的访问。大家有get到吗?

    霍格沃兹测试学院
  • MySQL存储过程的权限问题

    MySQL的存储过程,没错,看起来好生僻的使用场景。问题源于一个开发同学提交了权限申请的工单,需要开通一些权限。

    jeanron100
  • tf.InteractiveSession()与tf.Session()

    tf.InteractiveSession():它能让你在运行图的时候,插入一些计算图,这些计算图是由某些操作(operations)构成的。这对于工作在交互式...

    周小董

扫码关注云+社区

领取腾讯云代金券