一、简介
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
二、应用
TenserFlow应用的核心是:构建模型,启动会话并进行计算。
模型主要由常量节点、变量节点、占位节点、运算节点及算法关系线组成。
计算时,可以根据自己的需要传递输入输出,以及调整算法中的变量。
三、示例
import tensorflow as tf if __name__ == '__main__': print('====TensorFlow学习示例1====') print('\t输入 x,输出 y,算法(图)y = ax + b') print('\n','-'*5,'构建模型图(主要由常量节点、变量节点、占位节点、运算节点及算法关系线组成') node_a = tf.ones([2,1],tf.int32) print('node_a = ', node_a) var_node_b = tf.Variable(initial_value=tf.ones([2,2],tf.int32)) print('var_node_b = ',var_node_b) op_node_b = var_node_b.assign(tf.matmul(var_node_b,var_node_b)) ph_node_x = tf.placeholder(tf.int32,shape=[1,2], name="ph_node_x") print('ph_node_x = ', ph_node_x) # matmul 矩阵相乘: 第一个矩阵的列数(column)等于第二个矩阵的行数(row) op_node_y = tf.matmul(node_a,ph_node_x) + var_node_b print('op_node_y = ', op_node_y) print('\n','-' * 5, '启动会话并进行运算,算完后自动关闭会话') with tf.Session() as sess: # 变量初始化 sess.run(tf.global_variables_initializer()) # 准备运算输入 x = [[3,4]] input_feed = {ph_node_x:x} print('x = ', x) # 进行运算 y = sess.run(op_node_y,input_feed) print('y = ',y) # 调整算法中的变量,重新计算 print('-'*5,'调整算法中的变量,重新计算') sess.run(op_node_b) y = sess.run(op_node_y,input_feed) print('y = ', y)
转载请注明:www.ainoob.cn » TensorFlow简介