自学tensorflow第一次

***说明:我的博客只是自己的学习笔记,供自己整理和复习使用。若有瑕疵,欢迎指教。

***第一次笔记,其实是整理思路,基本没有代码。。。

***question 1:What is tensorflow ? (The definition on the Internet is ...   there are lots of definitions. I won't talk about them any more.)Actually, I am not very clear about it. 

但就这几次的学习来看,tensorflow是一种在python的基础上再次封装的(这里的封装指的是数据包,函数包,以及tensorflow自己独特的框架包)便于用于大量数据分析和机器学习的框架(甚至对于初学者可以看作一门语言)。


***question 2 : Why did I think it is a kind of language? 

之前我已经学了C语言(一种典型的面向过程的编程语言,在相关的测试题和操作系统的层面上用的尤为突出),C++和Java(Java不是很熟)(典型的面向对象的语言(其实所谓的对象主要归功与class的出现与运用),在进行App开发的时候尤为突出),python(一种相比于前几种语言都要“随意的语言”,因为python很便于数据段分析)

而tensorflow的编程完全是另一种“思维”(“构图”+“运行”),所以你千万不要按照以往的任何C或者C++的习惯去理解tensorflow的代码。


一、tensorflow的运行机制

简单来说就是: 先"构图"  再"运行"

下面是 graph , session , operation , tensor 四个概念的简介。

Tensor:类型化的多维数组,图的边;

Operation:执行计算的单元,图的节点;

Graph:一张有边与点的图,其表示了需要进行计算的任务;

Session:称之为会话的上下文,用于执行图。


import tensorflow as tf  
  
# Build a graph.  
a = tf.constant(5.0)  
b = tf.constant(6.0)  
c = a + b  
# Launch the graph in a session.  
sess = tf.Session()  
print(sess.run(c))  

二、tensorflow的“构图”要点

我们知道,所谓“构图”其实就是把你的节点构造清楚。(PS:这时候你该有的计算和逻辑就应该部署到位了)

但是在最开始我学习的时候,被这些变量弄糊涂了,因为在过去的学习中,从来没有看见过这些。

t = tf.constant(42.0)
f = tf.Variable(3,name='foo') 
d = tf.placeholder(tf.int32,shape=[1],name='dif')

那这些到底是什么呢??

我把他们看作是tensorflow自己封装的“变量类型”:

为什么说是“变量类型”呢?因为在tensorflow中,不再单独有我们熟悉的int、float、char、string等类型,所有变量首先应该是上面的三种类型。

tf.constant(42.0)

这是常量类型,具体可以表示很多变量(数字,string等等)具体要你里面放的是什么。

f = tf.Variable(3,name='foo') 

这是变量类型(大哭这是真的变量),这种类型的数据才是我们在C,C++中见到的正常的变量(即创建变量时分配存储空间,可以重新赋值,可以用在运算中)

d = tf.placeholder(tf.int32,shape=[1],name='dif')

这是“占位符”类型,这种类型的变量其实没有具体的“值”,只是一个空架子,它的作用是:在运行阶段中,可以直接赋值(把变量塞进这个空架子里),但是一旦用完后直接清除掉,不会保存数据。(但是我们在后面会发现,因为tensorflow用于大量的数据分析,这种“架子”其实很方便)

***重点来了(彩蛋来了)

那为什么我们要定义这些“变量类型”呢?有什么意义呢?

因为在tensorflow中我们往往会用到比较复杂的数学运算(像矩阵运算,高维运算),对应的数据结构也很复杂。

但是上面三种“变量”,都可以帮助我们非常方便的定义(声明)复杂的数据结构。

例如: 

W = tf.Variable(tf.zeros([784, 10]))  

那么这段代码,马上就定义了一个784*10的全为0矩阵(具体Valiable和placeholder的声明其实比较复杂,可以参见:https://my.oschina.net/yilian/blog/659618

三、tensorflow的“运行”要点

http://blog.csdn.net/helei001/article/details/51750910

暂时先写到这里吧

第二次准备做一个关于“三种变量类型”的专题(以代码为主)(毕竟要先把基础打好)

估计暂时不会更新,因为总结基础很繁琐,我先往前学,等有时间在更。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值