首页 > 其他分享 >TesorFlow03-TesorFlow的基础

TesorFlow03-TesorFlow的基础

时间:2023-06-15 22:33:26浏览次数:38  
标签:tensor 28 gather 基础 TesorFlow shape zeros TesorFlow03 tf

1 TesorFlow的数据结构

list :[1,1.2,'Hello',(1,2)] ,这个list里面什么都可以存储,但是如果存储一个图片[64,32,32,3]里面全是数字的话,大小会很大,所以引入np.array
np.array :可以很方便的做一些同类型的数据的运算,比如加、减、乘、除、转置。但是有一个致命的弱点,就是np是在深度学习之前就设计好的库函数,所以他没有GPU的支持很慢,也没有求导
tf.Tensor :
scalar 是一个标量,dim=0,然后vector是一个一维数组dim=1
image
TF支持的计算类型:
▪ int, float, double
▪ bool
▪ string

1.1 常见数据类型的创建

#创建一个常量
tf.constant(1)
#创建一个浮点数常量,这里默认是float32类型
tf.constant(1.)
#创建一个double型常量
tf.constant(2.,dtype=tf.double)
#创建一个bool类型的常量
tf.constant([True,False])
#创建一个string类型的常量
tf.constant('Hello World')

image

1.2 tensorflow变成numpy

.numpy()函数

c=tf.range(5)
c.numpy()
#查看c的维度
c.ndim

image

1.3 rank函数

这个也是返回维数的比如说
其中tf.ones([3,4,2])是弄一个三维的数组
image

1.4 检验函数是不是tensor类型

tf.is_tensor(t)

image
image

1.5 numpy转化成tensor

aa=tf.conver_to_tensor(a)

a=np.arange(5)
aa=tf.conver_to_tensor(a)

image
如果转化的时候想改变类型的话

bb=tf.convert_to_tensor(a,dtype=np.int64)

image

1.6 tensor中数据的相互转化

API:
tf.cast(aa,tf.float32)就是把aa里面的数变成float32

tf.cast(bb,tf.float32)
tf.cast(bb,dtype=tf.double)
tf.cast(bb,dtype=tf.int32)

image
我们后面比较常见的就是整形和bool型之间的转化

b=tf.constant([0,1])
tf.cast(b,dtype=tf.bool)
#输出:<tf.Tensor: shape=(2,), dtype=bool, numpy=array([False,  True])>
tf.cast(b,dtype=tf.int32)

image

1.7 Variable 类型

这个是专门为神经网络设计的一个类型,比如收y=w*x+b这个函数,我们在求梯度下降的时候会对w进行求导,所以我们可以将w设置成Variable类型,这样它进行梯度关系的一个跟踪,如果记录成Variable 就会自动的进行一些梯度的记录

image

2 创建tensor

其中方法有很多:
▪ from numpy, list
▪ zeros, ones
▪ fill
▪ random
▪ constant

2.1 from numpy,list

API:
conver_to_tensor()

tf.convert_to_tensor(np.ones([2,3]))
#这里创建的默认是float64类型的
tf.convert_to_tensor(np.zeros([2,3]))
#这里创建的默认是float64类型的

image

2.2 zeros, ones

tf.zeros()这个里面是维度
tf.ones()这个里面也是维度

注意这个括号里面的是维度,不如tf.zeros([2,2])这是创建了一个两行两列的0

tf.zeros([])
#这里就是一个标量0.
tf.zeros([2,3,4])
#这是一个三维的

image

2.3 tf.zeros.like(),tf.ones.like()

比如说这个tf.zeros.like(a),就是创建了一个和a形状相同的但是全0的矩阵,等价于tf.zeros.like(a.shape)
image

这个tf.zeros.like(),tf.ones.like(),tf.zeros(),tf.ones()用处是非常广泛的,比如y=wx+b,w通常都初始化为全1,b初始化为全0

2.4 fill

顾名思义,就是填满的意思

tf.fill([n,m],k)
意思就是用k填满这个[n,m]的矩阵

image

2.5 random(常见)

这个是创建一个随机数组,这个最常见其中包含正态分布,
1.正态分布

tf.random.normal([n,m],mean=1,stddev=1)
n行m列,然后均值mean为1,方差stddev为1
不指定的话就是01分布

tf.random.truncated_normal([2,2],mean=1,stddev=1)这是一个截断了的正态分布,有时候使用这个会好一点

tf.random.normal([2,2],mean=1,stddev=1)
tf.random.truncated_normal([2,2],mean=1,stddev=1)

image

2.均匀分布

tf.random.uniform([n,m],minval=,maxval=)
这个就是在minval和maxval之间均匀取样n行m列的数组

tf.random.uniform([2,2],minval=0,maxval=1)
tf.random.uniform([2,2],minval=0,maxval=10)

image

2.6 应用(random Permutation)

这个是将一个数组再重新打乱
image

2.7 tf.constant函数

就是这个和conver_to_tensor是一样的
image

3 存在意义

3.1 Scalar(标量)

image
image
这个里面的shape=()就是标量

3.2 Vector(向量)

image
其中这个x@w+b,这个b就是一个vector
image

3.3 Matrix(矩阵)

image
image

3.4 Dim=3 Tensor

这个在自然语言用的比较多,一个单词5个特征,1句话80个单词。
image

image

3.5 Dim=4 Tensor

这个通常对应图片,多张图片是[b,h,w,c],b是代表多张图片,h高,w宽,c什么样的图片,c=3彩色的
image

image

3.6 Dim=5 Tensor

image

4 Tensor 的索引和切片

▪ Basic indexing
-------1.[idx][idx][idx]
▪ Same with Numpy
-----1.[idx, idx,…]
-----2.start:end
-----3.start:end :step

4.1 基本索引(Basic indexing)

4.1.1 [,,,],索引

在这里如果我们想访问的时候一般不用[][],一般用[,,,]。
例如:

a=tf.random.normal([4,28,28,3])
a[1].shape #一般代表第二张照片的信息
=>[28,28,3]
a[1,2].shape #代表
=>[28,28]
a[1,2,3].shape
=>[3]
a[1,2,3,2].shape #代表某一张图片的像素,一般为0-256,或者标准化后的图像

4.1.2 start:end

在这里从前向后数第一个为0,从后往前数第一个为-1,但是注意这里是左闭右开的
image
扩展到高维中去:a[0,:,:,:]就是第一张图片的全部信息,a[:,:,:,0]单通道的
image

4.1.3 start:end :step

隔行取样,设置步长state

标签:tensor,28,gather,基础,TesorFlow,shape,zeros,TesorFlow03,tf
From: https://www.cnblogs.com/lipu123/p/17483361.html

相关文章

  • opcenter camstar designer基础知识-- Tables
     “Queries”窗口分为左右两个窗格。左窗格包含一个用于显示以下查询类别的选择树:可以展开每个类别以显示该类别中的查询,也可以通过在左窗格中右键单击来访问快捷菜单。快捷菜单选项包括: • AddQuerydefinition添加查询定义• RenameQuerydefinition重命名......
  • Web基础与HTTP协议
    目录一、DNS与域名1.DNS2.域名3.域名小结二、HTML文档1.网页的概念2.HTML概述三、Web1.Web概述2.分布式3.Web1.04.Web2.05.静态页面与动态页面(1)静态页面(2)动态页面(3)小结四、HTTP协议1.HTTP协议简介2.HTTP1.13.HTTP2.04.HTTP请求格式(GET/POST方式)(1)GET方式(2)POST......
  • 12神经网络中的数学基础:梯度下降和反向传播
    目录1.引言2.技术原理及概念2.1基本概念解释2.2技术原理介绍2.3相关技术比较3.实现步骤与流程3.1准备工作:环境配置与依赖安装3.2核心模块实现3.3集成与测试4.示例与应用4.1实例分析神经网络中的数学基础:梯度下降和反向传播随着人工智能和机器学习的发展,神经网络已经......
  • 基础语法-条件
    if只写一个判断也是可以的 swichswitch是Java中的一种条件语句,用于根据表达式的值选择不同的执行路径。它可以用来代替一系列的if-else语句,使代码更简洁和易读。switch(expression){casevalue1://当expression的值等于value1时执行的代码......
  • 【JS基础】Promise.resolve()
    Promise.resolve 静态方法将给定值“解析”为Promise。 如果值是Promise,则返回该Promise;如果值是thenable,返回的Promise会“跟随”这个thanable的对象,采用它的最终状态;否则,返回的promise将以此值完成。此函数将类promise对象的多层嵌套展平。 注意:不要在解析......
  • 基础语法-循环
    for循环:用于重复执行一段代码,可以指定循环的初始值、循环条件和每次迭代后的操作。 while循环:在循环开始之前先判断循环条件,只有当条件为真时才执行循环体内的代码。 do-while循环:先执行一次循环体内的代码,然后再判断循环条件,只有当条件为真时才继续执行循......
  • Python之pandas基础
    1.pandas简介:paneldataanalysis(多维数据分析)pandas中具有两种基本的数据存储结构,存储一维values的Series和存储二维values的DataFrame;Series:Series一般由四个部分组成,分别是序列的值data、索引index、存储类型dtype、序列的名字name。其中,索引也可以指......
  • 【python基础】函数-参数形式
    鉴于函数定义中可能包含多个形参变量,因此函数调用中也可能包含多个实参变量。向函数传递实参变量给形参变量的方式有很多,可使用位置参数,这要求实参变量的顺序与形参变量的顺序相同;也可使用关键字参数,都由变量名和值组成,简称名称-值对;还可使用列表(元组)和字典。1.位置参数调用函数......
  • Java基础面试笔记(三) _Spring
    1.Spring框架有哪些主要模块?截止到目前Spring框架已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。2.什么是依赖注入?什么是控制反转(IOC)?在Spring中,有几种依赖注入方式?依赖注入是在编译......
  • Js基础入门
    [Js基础入门-掘金](https://juejin.cn/post/7244734132322992187)浏览器执行JS简介浏览器分成两大部分渲染引擎和JS引擎渲染引擎:用来解析HTML与CSS,俗称内核,比如chrome浏览器的blink,老版本的webkitJS引擎:也称为JS解释器。用来读取网页中的JavaScript代码,对其处理后......