Tensorflow
1、tensor就是张量,多维数组,多维列表,阶表示张量的维数(dimension)
维数 |
阶 |
名字 |
例子 |
0-D |
0 |
标量scalar |
s=1 2 3 |
1-D |
1 |
向量vector |
V=[1,2,3] |
2-D |
2 |
矩阵matrix |
m=[[1,2,3],[4,5,6],[7,8,9]] |
n-D |
n |
张量tensor |
t=[[[ |
2、数据类型
tf.int,tf.float……
tf.int32 tf.float32 tf.float64
tf.bool
tf.constant([True,False])
tf.string
tf.constant(“Hello,world!”)
3、创建一个张量
tf.constant(张量内容,dtype=数据类型(可选))
import tensorflow as tf
a = tf.constant([1,5],dtype=tf.int64)
print(a)
print(a.shape)
print(a.dtype)
运行结果:
创建全为0的张量
tf.zeros(维度)
创建全为1的张量
tf.ones(维度)
创建全为指定值的张量
tf.fill(维度,指定值)
a = tf.zeros([2,3])
b = tf.ones(4)
c = tf.fill([2,2],9)
print(a)
print(b)
print(c)
运行结果:
创建一个Tensor
生成正态分布的随机数,默认均值为0,标准差1
tf.random.normal(维度,mean=均值,stddev=标准差)
生成截断式正态分布的随机数
tf.random.truncated_normal(维度,mean=均值,stddev=标准差)
在tf.truncated_normal中如果生成了随机生成数据的取值在()之间
d = tf.random. normal([2,2],mean = 0.5,stddev=1)
e = tf.random.truncated_normal([2,2],mean=0.5,stdde
生成指定维度的均匀分布随机数[minval,maxval]
tf.random.uniform(维度,minval=最小值,maxval=最大值)
tf.random,uniform([2,2],minval=0,maxval=1)
print(f)
4、常用函数
强制tensor转换为该数据类型
tf.cast(张量名,dtype=数据类型)
计算张量维度上元素的最小值
tf.reduce_min(张量名)
计算张量维度上元素的最大值
tf.reduce_max(张量名)
x1=tf.constant([1.,2.,3.],
dtype=tf.float64)
print(x1)
x2 = tf.cast(x1,tf.int32)
print(x2)
print(tf.reduce_min(x2),
tf.reduce_max(x2))
切分传入张量的第一维度,生成输入特征/标签对,构建数据集
data = tf.data.Dataset.from_tensor_slices((输入特征,标签))
features = tf.constant([12,23,10,17])
labels = tf.constant([0,1,1,0])
dataset = tf.data.Dataset.from_tensor_slices((features,labels))
print(dataset)
for element in dataset:
print(element)