tensorflow2.0预备知识一:认识张量以及张量的生成方式
前言
近期在学习tensorflow2.0框架,因此想要记录自己学习的过程以及学习笔记。
文章内容主要参考北大曹建教授的tensorflow视频,进行整理。
一、什么是标量,向量,矩阵,张量?
-
1.标量(scalar):常数
例如:1,2,3
-
2.向量(vector):一维矩阵
例如:V=[1,2,3]
-
3.矩阵(martix):二维矩阵
例如:m = [[1,2,3],[4.5.6].[7,8,9]]
-
4.张量(tensor):表示多维数组(列表)
例如:t=[[[ (n个)
总结:张量可以表示0到n阶数组
二、数据类型
1.整型与浮点型
tf.int32
tf.float32
tf.float64
2.布尔型
tf.bool
3.字符型
tf.string
三、如何创建一个张量
-
1.tf.constant(张量内容,dtype=数据类型)
示例:
import tensorflow as tf a = tf.constant([1,5],dtype=tf.int64) print(a) print(a.dtype) print(a.shape)
输出结果:
其中shape=(2,):表示张量a的形状是一维的,且有两个元素
-
2.tf.convert_to_tensor(数据名,dtype=数据类型)
描述:此方法可以将numpy的数据类型转换为tensor的数据类型
代码示例:
import tensorflow as tf import numpy as np a = np.arange(0,5) b= tf.convert_to_tensor(a,dtype=tf.int64) print('a=',a) print('b=',b)
输出结果:
-
3.常见的特殊方法
1.创建全为0的张量:tf.zeros(维度) 2.创建全为1的张量: tf.ones(维度) 3.创建全为指定值的张量:tf.fill(维度,指定值) 维度: 一维:直接写个数 二维:用[行,列] 多维:用[n,m,k,j,l,....]
代码示例:
a = tf.zeros([2,3]) #二维 b = tf.ones(4) #一维 c = tf.fill([2,2],9) # 二维 print('a=',a) print('b=',b) print('c=',c)
输出结果:
-
4.tf.random.normal(维度,mean=均值,stddev=标准差)
描述: 生成正态分布的随机数,默认为均值为0,标准差为1
-
5.tf.random.truncated_normal(维度,mean=均值,stddev=标准差)
描述:此方法能够生成截断式正态分布的随机数, 即如果随机生成的数据在取值为(μ-2σ,μ+2σ)之外, 则重新进行生成,保证了生成值为均值附近 μ为标准差,σ为标准差
-
6.tf.random.uniform(维度,minval=最小值,maxval=最大值)
描述: 此方法是用来生成均匀分布随机数:[min,max)
代码示例:
f = tf.random.uniform([2,2],minval=0,maxval=1) print(f)
输出结果:
结尾
这篇文章主要是记录何为张量以及张量的创建的一些笔记 下一篇文章,继续记录tensorflow2.0的预备知识(未完待续!)