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

简介: 深度学习(二)--tensor张量

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)


image.png


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

给大家写个小栗子:

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)


其实通过我们人眼可以看出它是一个三维数组


我们来看一下输出结果:

Tensor("tens1:0", shape=(4, 2, 3), dtype=int32)


第一个参数是name  第二个参数是形状  第三个参数是数据类型


我们主要来看看第二个形状


首先解释


4 — 就是在最外围有四组二维数组

2 — 就是在二维数组里面有两个一维数组

3 — 就是在一维数组里有三个标量


再来一个例子

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())


打印结果:

()
(4,)
(2, 3)
(3, 3, 1)


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


四、张量的阶

1.概念


image.png


2.获取张量的元素


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


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开始。


五、张量的类型


image.png


相关文章
|
4月前
|
机器学习/深度学习 算法 PyTorch
【深度学习】TensorFlow面试题:什么是TensorFlow?你对张量了解多少?TensorFlow有什么优势?TensorFlow比PyTorch有什么不同?该如何选择?
关于TensorFlow面试题的总结,涵盖了TensorFlow的基本概念、张量的理解、TensorFlow的优势、数据加载方式、算法通用步骤、过拟合解决方法,以及TensorFlow与PyTorch的区别和选择建议。
283 2
|
4月前
|
机器学习/深度学习 Serverless 数据处理
《零基础实践深度学习》 Numpy 线性代数 应用举例 张量表示
这篇文章介绍了NumPy在线性代数中的应用,包括矩阵操作和文件读写功能,并提供了使用NumPy进行图片处理和激活函数计算的示例,同时探讨了飞桨框架中张量(Tensor)的使用和与NumPy数组的转换。
|
7月前
|
机器学习/深度学习 存储 PyTorch
PyTorch深度学习基础:张量(Tensor)详解
【4月更文挑战第17天】本文详细介绍了PyTorch中的张量,它是构建和操作深度学习数据的核心。张量是多维数组,用于存储和变换数据。PyTorch支持CPU和GPU张量,后者能加速大规模数据处理。创建张量可通过`torch.zeros()`、`torch.rand()`或直接从Python列表转换。张量操作包括数学运算、切片和拼接。在深度学习中,张量用于神经网络模型的构建和训练。理解张量对于掌握PyTorch至关重要。
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【深度学习】Pytorch Tensor 张量
【1月更文挑战第10天】【深度学习】Pytorch Tensor 张量
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【深度学习】Pytorch Tensor 张量
【1月更文挑战第26天】【深度学习】Pytorch Tensor 张量
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)
PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)
86 1
|
7月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【深度学习】Tensorflow、MindSpore框架介绍及张量算子操作实战(超详细 附源码)
【深度学习】Tensorflow、MindSpore框架介绍及张量算子操作实战(超详细 附源码)
227 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Tensor的变换、拼接、拆分讲解及实战(附源码 超详细必看)
PyTorch深度学习基础之Tensor的变换、拼接、拆分讲解及实战(附源码 超详细必看)
127 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
225 0
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习Pytorch框架Tensor张量
深度学习Pytorch框架Tensor张量
75 0

相关实验场景

更多