前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习(二)--tensor张量

深度学习(二)--tensor张量

作者头像
Python进击者
发布2019-09-17 15:19:52
7390
发布2019-09-17 15:19:52
举报
文章被收录于专栏:JAVAandPython君JAVAandPython君

1

/ 写在前面的话 /

关于“tensorflow”这个专栏,我打算一直更新下去,文章基本都是随着我的进度来的,我也是查找了一些资料并根据自己的一些理解写的,可能内容偶尔会有错误,如果出现错误,大家可以在公众号后台滴滴我,或者直接微信轰炸我,我不会介意的。

2

/tensorflow之tensor张量 /

一、张量的概念

1.在TensorFlow中,所有的数据都通过张量的形式来表示
2.从功能的角度,张量可以简单理解为多维数组
  • 零阶张量表示标量(scalar),也就是一个数;
  • 一阶张量为向量(vector),也就是一维数组;
  • n阶张量可以理解为一个n维数组;
3.张量并没有真正保存数字,它保存的是计算过程

二、张量的属性

  • Tensor(“Add:0”, shape=(), dtype=float32)
名字(name)
  • “node:src_output”:node 节点名称,src_output 来自节点的第几个输出
形状(shape)
  • 张量的维度信息,shape=() ,表示是标量
类型(type)
  • 每一个张量会有一个唯一的类型
  • TensorFlow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错

三、张量的形状

三个术语描述张量的维度:阶(rank)、形状(shape) 、维数(dimension number)

其实可以从最外围的括号数量可以看出这个张量是几阶的,例如 [[[ 那么这个张量就是三维的也就是三阶

给大家写个小栗子:
代码语言:javascript
复制
import tensorflow as tf
tens1 = tf.constant([[[1, 2, 3], [2, 2, 3]],
                     [[5, 5, 5], [1, 4, 2]],
                     [[2, 5, 3], [2, 6, 1]],
                     [[1, 3, 5], [2, 3, 4]]], name='tens1')
print(tens1)

其实通过我们人眼可以看出它是一个三维数组 我们来看一下输出结果:

代码语言:javascript
复制
Tensor("tens1:0", shape=(4, 2, 3), dtype=int32)

第一个参数是name 第二个参数是形状 第三个参数是数据类型 我们主要来看看第二个形状 首先解释 4 — 就是在最外围有四组二维数组 2 — 就是在二维数组里面有两个一维数组 3 — 就是在一维数组里有三个标量

再来一个例子
代码语言:javascript
复制
import tensorflow as tf

scalar = tf.constant(100)
vector = tf.constant([1, 2, 3, 4])
matrix = tf.constant([[1, 2, 3], [1, 2, 3]])
cube_matrix = tf.constant([[[1], [2], [3]], [[4], [1], [5]], [[1], [2], [7]]])
print(scalar.get_shape())
print(vector.get_shape())
print(matrix.get_shape())
print(cube_matrix.get_shape())

打印结果:

代码语言:javascript
复制
()
(4,)
(2, 3)
(3, 3, 1)

get_shape方法就是得到张量的形状,也就是几维数组

四、张量的阶

1.概念
2.获取张量的元素

如何获取张量里面的元素呢?来看下面代码:

代码语言:javascript
复制
import tensorflow as tf
tens1 = tf.constant([[[1, 4], [1, 5]], [[3, 4], [2, 4]], [[2, 4], [8, 4]]])

sess = tf.Session()

print(sess.run(tens1)[1, 1, 0])

sess.close()

相信大家从代码就可以看出,是如何获取到里面的元素了,这里的索引与数组中的索引是一样的从0开始。

五、张量的类型

这里大家注意一下,多个张量进行运算时,必须是同等类型,否则无法进行运算,会报错!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python进击者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、张量的概念
  • 二、张量的属性
  • 三、张量的形状
    • 三个术语描述张量的维度:阶(rank)、形状(shape) 、维数(dimension number)
    • 四、张量的阶
    • 五、张量的类型
      • 这里大家注意一下,多个张量进行运算时,必须是同等类型,否则无法进行运算,会报错!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档