Tensorflow实战学习(四)【张量表示、类型、形状、计算】
来源:互联网 发布:数控加工编程代码例题 编辑:程序博客网 时间:2024/06/06 00:21
张量是N维矩阵抽象。一维张量是向量。二维张量是矩阵,三维或以上称N维张量或N阶张量。
输入节点,从接收标量,改为接收向量。.reduce_prod()创建归约乘积Op。reduce_sum()创建归约求和Op。
import tensorflow as tf a = tf.constant([[[1,2,3],[4,5,6]],[[7,8,9],[1,2,3]]], name="input_a") b = tf.reduce_prod(a, name="prod_b")#定义节点b,创建归约乘积Op,接收一个N维张量输入,输出张量所有分量(元素)的乘积,以prod_b标识。 c = tf.reduce_sum(a, name="sum_c")#定义节点c,创建归约求和Op,接接收一个N维张量输入,输出张量所有分量(元素)的求和,以sum_c标识。 d = tf.add(b,c, name="add_d") sess = tf.Session() out = sess.run(d) writer = tf.summary.FileWriter('./my_graph', sess.graph) writer.close() sess.close()
TensorFlow可接收Python数值、布尔值、字符串、数组。单个数值转化为0阶张量(标量)。数值列表转化为1阶张量(向量)。由列表构成的列表转化为2阶张量(矩阵)。
TensorFlow数据类型:float32、float64、int8、int16、int32、int64、uint8、string、bool、cpmples64(实部32位虚部32位的64位复数)、qint8(有符号用于量化Op)、qint32、quint8(无符号用于量化Op)。
NumPy专为操作N维数组设计的科学计算软件包,是数据科学通用语言。TensorFlow数据类型基于NumPy。任何NumPy数组都可以传递给TensorFlow Op。指定所需数据类型代价最小。NumPy没有与tf.string字符串精确对应的数据类型。TensorFlow可以导入NumPy的字符串数组,但不能在NumPy中显式指定dtype属性。Session.run()方法返回的张量都是NumPy数组。不要用TensorFlow的数据类型初始化NumPy数组。推荐用NumPy手工指定Tensor对象。
张量Shape属性,表示张量的维(阶)数和每一维的长度。张量形状是包含有序整数集的列表(list)或元组(tuple)。元素数量即维数,元素数值即每一维的长度。.shape()创建获取张量形状Op。
import tensorflow as tf #指定0阶张量(标量)形状 s_0 = 1 #指定1阶张量(向量)形状 s_1_list = [1,2,3] s_1_tuple = (1,2,3) #指定2阶张量(矩阵)形状 s_2 = [[2,3],[2,3]] #指定任意维数任意长度的张量形状 s_any = None shape = tf.shape(s_2, name="mystery_shape")#创建获取张量形状Op,接收一个张量,输出张量形状,以mystery_shape标识。 sess = tf.Session() sess.run(shape)
Operation,Op,Tensor对象运算节点,返回张量。在Python中调用创建Op的构造方法,传入所需所有Tensor输入,以及正确创建Op所需属性,返回创建Op的输出(张量)句柄。name属性用描述性字符串指代Op。
运算符重载,为了使运算更加简洁。运算符有一个或多个操作对象为Tensor对象,TensorFlow Op被调用,添加到数据流图。-x,.neg(),x中每个元素的相反数。~x,.logical_not(),x中每个元素的逻辑非,只适用dtype为tf.bool的Tensor对象。abc(),.abs(),x中每个元素的绝对值。x+y,.add(),x、y逐元素相加。x-y,.sub(),x、y逐元素相减。x-y,.sub(),x、y逐元素相减。x*y,.multiply(),x、y逐元素相乘。x/y,.div(),x、y逐元素相除,整数张量执行整数除法,浮点数张量执行浮点数除法。x%y,.mod(),逐元素取模。x**y,.pow(),x逐元素为底,y逐元素为指数的幂。x<y
,.less(),逐元素计算x<y
真值。x<=y
,.less_equal(),逐元素计算x<=y真值。x>y
,.greater(),逐元素计算x>y
真值。x>=y
,.greater_equal()
,逐元素计算x>=y真值。x&y,.logical_and(),逐元素计算x&y真值,元素dtype必须为tf.bool。x|y,.logical_or(),逐元素计算x|y真值,元素dtype必须为tf.bool。x^y
,.logical_xor(),逐元素计算x^y
真值,元素dtype必须为tf.bool
。
运算符重载无法为Op指定name。==判断两个Tensor对象名是否引用同一个对象。.equal()和.not_equal()判断张量值是否相同。
参考资料:
《面向机器智能的TensorFlow实践》
- Tensorflow实战学习(四)【张量表示、类型、形状、计算】
- TensorFlow学习--张量的数据类型/阶/形状/常用API
- TensorFlow计算图、张量、回话详细介绍
- tensorflow-张量
- TensorFlow基础知识:计算图中的Op,边,和张量
- tensorflow的变量的初始化,张量的计算取值
- tensorflow张量详解
- tensorflow张量使用
- Tensorflow——张量
- TensorFlow基础知识2-张量
- TensorFlow数据模型--张量
- TensorFlow学习(六):形状相关操作
- PyTorch 实战-张量
- AI学习之路(14): 张量的平方计算
- tensorflow 关于张量 shape 数组
- tensorflow中张量的理解
- TensorFlow的张量与会话
- tensorflow 关于张量 shape 数组
- IT产业的70:20:10规律
- 7-Druid-Querying
- Mysql03_增删改查
- 微信网页授权 Scope参数错误或没有Scope权限 解决方法
- java中含中文字符串的编码和解码问题
- Tensorflow实战学习(四)【张量表示、类型、形状、计算】
- pip 安装报错,is not a supported wheel on this platform
- java多线程和synchronize锁
- FPGA入门实验
- 7
- 图形用户界面 作业2 事件
- hihocoder1580-Matrix
- Mac下测试顺序线性表
- dlib库+vs2017详细配置流程