开始玩TensorFlow, 发现真的是个很强大的工具。为了自我督促,故开此博客,将阶段工作整理发表,以便于互相交流与讨论~~
TensorFlow使用张量为数据结构(可以暂时理解成一维向量或者二维矩阵),这些就是它的操作对象。
TensoeFlow使用computation graph作为计算过程,每个计算过程都称为一个session,而每个session存储的也是一个model。
同时还有许许多多各种功能的配套函数。
这就组成了我们的TensorFlow。
下面来自于一个有趣的实验:矩阵乘法
法一:安装官方文档上的示例,使用tensorflow去计算
法二:使用numpy库中的矩阵乘法
法三:使用numpy库中的dot函数
时间长短比较:
法一>法二>>法三
使用TensorFlow就像“宰牛刀”去杀鸡一样,跑的时间比其他的都长。
方法3的时间几乎为前两个的1/10, 非常快速!为什么呢?让窝再想想......也许是与内置函数有关?【我联想到了python字典的查询速度与规模无关,都是非常快这件事了。】
代码如下:
import tensorflow as tf
import time
import numpy as np
print '\nexample1: 3 ways to do Matrix-Multiple by ORCA\n'
# do MatrixMultiple in TF
start = 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 result
print 'tensorflow use time:', time.clock()-start
#do MatrixMultiple in Numpy as matrix
start = time.clock()
a = np.matrix([[2., 1.]])
b = np.matrix([[3., 9.], [7., 2.]])
c = a*b
print c
print 'matrix multiple use time:', time.clock() - start
#do MatrixMultiple in Numpy as dot
start = time.clock()
a = np.array([[2., 1.]])
b = np.array([[3. , 9.], [7., 2.]])
c = np.dot(a, b)
print c
print 'matrix dot use time:', time.clock() - start
大概就是这样一个突发奇想,也是我从官方文档扒下来的第一个示例。以后也会逐渐从官方文档上整理示例代码(当然是更加完善实现更多功能那种),供自己学习以及大家的交流~
天空鱼