TensorFlow是一个使用数据流图进行数值计算的开源软件库。它最初由谷歌机器智能研究机构谷歌大脑团队开发,用于机器学习和深度神经网络的研究。
什么是张量?
张量是一个有组织的多维数组,张量的顺序是表示它所需数组的维数。
张量的类型
什么是计算图?
计算图是计算代数中的一个基础处理方法,在机器学习中的神经网络和其他模型推导算法和软件包方面非常富有成效。计算图中的基本思想是表达一些模型——例如前馈神经网络,计算图作为表示计算步骤序列的一个有向图。序列中的每个步骤对应于计算图中的顶点, 每个步骤对应一个简单的操作,每个操作接受一些输入并根据其输入产生一些输出。
在下面的图示中,我们有两个输入w1 = x和w2 = y,这个输入将流经图形,其中图形中的每个节点都是数学运算,为我们提供以下输出:
- w3 = cos(x),余弦三角函数操作
- w4 = sin(x),正弦三角函数操作
- w5 = w3∙w4,乘法操作
- w6 = w1 / w2,除法操作
- w7 = w5 w6,加法操作
现在我们了解了什么是计算图,下面让我们TensorFlow中构建自己的计算图吧。
代码:
# Import the deep learning library import tensorflow as tf # Define our compuational graph W1 = tf.constant(5.0, name = "x") W2 = tf.constant(3.0, name = "y") W3 = tf.cos(W1, name = "cos") W4 = tf.sin(W2, name = "sin") W5 = tf.multiply(W3, W4, name = "mult") W6 = tf.divide(W1, W2, name = "div") W7 = tf.add(W5, W6, name = "add") # Open the session with tf.Session() as sess: cos = sess.run(W3) sin = sess.run(W4) mult = sess.run(W5) div = sess.run(W6) add = sess.run(W7) # Before running TensorBoard, make sure you have generated summary data in a log directory by creating a summary writer writer = tf.summary.FileWriter("./Desktop/ComputationGraph", sess.graph) # Once you have event files, run TensorBoard and provide the log directory # Command: tensorboard --logdir="path/to/logs"
使用Tensorboard进行可视化:
什么是Tensorboard?
TensorBoard是一套用于检查和理解TensorFlow运行和图形的Web应用程序,这也是Google的TensorFlow比Facebook的Pytorch最大的优势之一。
上面的代码在Tensorboard中进行可视化
在卷积神经网络、TensorFlow和TensorBoard有了深刻的理解,下面让我们一起构建我们的第一个使用MNIST数据集识别手写数字的卷积神经网络。