Tensorflow自我训练进阶(代码+注解)【0】以矩阵乘法为例的开篇之谈

来源:互联网 发布:刺客信条2mac调中文 编辑:程序博客网 时间:2024/06/02 04:19

开始玩TensorFlow, 发现真的是个很强大的工具。为了自我督促,故开此博客,将阶段工作整理发表,以便于互相交流与讨论~~


TensorFlow使用张量为数据结构(可以暂时理解成一维向量或者二维矩阵),这些就是它的操作对象。

TensoeFlow使用computation graph作为计算过程,每个计算过程都称为一个session,而每个session存储的也是一个model。

同时还有许许多多各种功能的配套函数。

这就组成了我们的TensorFlow。


下面来自于一个有趣的实验:矩阵乘法

法一:安装官方文档上的示例,使用tensorflow去计算

法二:使用numpy库中的矩阵乘法

法三:使用numpy库中的dot函数


时间长短比较:


法一>法二>>法三


使用TensorFlow就像“宰牛刀”去杀鸡一样,跑的时间比其他的都长。

方法3的时间几乎为前两个的1/10, 非常快速!为什么呢?让窝再想想......也许是与内置函数有关?【我联想到了python字典的查询速度与规模无关,都是非常快这件事了。】


代码如下:

import tensorflow as tfimport timeimport numpy as npprint '\nexample1: 3 ways to do Matrix-Multiple by ORCA\n'# do MatrixMultiple in TFstart = time.clock()matrix1 = tf.constant([[2., 1.]])matrix2 = tf.constant([[3., 9.],[7., 2.]])product = tf.matmul(matrix1, matrix2)sess = tf.Session()with tf.Session() as sess:    result = sess.run([product])print resultprint 'tensorflow use time:', time.clock()-start#do MatrixMultiple in Numpy as matrixstart = time.clock()a = np.matrix([[2., 1.]])b = np.matrix([[3., 9.], [7., 2.]])c = a*bprint cprint 'matrix multiple use time:', time.clock() - start#do MatrixMultiple in Numpy as dotstart = time.clock()a = np.array([[2., 1.]])b = np.array([[3. , 9.], [7., 2.]])c = np.dot(a, b)print cprint 'matrix dot use time:', time.clock() - start
大概就是这样一个突发奇想,也是我从官方文档扒下来的第一个示例。以后也会逐渐从官方文档上整理示例代码(当然是更加完善实现更多功能那种),供自己学习以及大家的交流~


天空鱼

0 0
原创粉丝点击