AI教程网 - 未来以来,拥抱AI;新手入门,从AI教程网开始......

TensorFlow简介

TensorFlow教程 AI君 143℃ 0评论

一、简介

TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

tensors_flowing

数据流图用“结点”(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简介

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!