文章目录
1、constant
使用constant创建张量,这里创建了一个一阶张量,其中有两个元素1,5
a=tf.constant([1,5],dtype=tf.int64)
print(a)
2、convert_to_tensor
将numpy的数据类型转换为Tensor的数据类型
a=np.arange(0,5)
b=tf.convert_to_tensor(a,dtype=tf.int64)
print(a)
print(b)
3、批量创建张量
创建全为0的张量
一维直接用数字,二维用[行,列],多维用[1,2,…]
# 创建全为0的张量
# 一维直接用数字,二维用[行,列],多维用[1,2,.......]
# 理解为,有两行,三列
a=tf.zeros([2,3])
# 创建全为1的张量
b=tf.ones(4)
# 创建全为指定值的张量
c=tf.fill([2,2],9)
print(a)
print(b)
print(c)
4、生成随机数
#生成正态分布的随机数,默认均值为1,标准差为1
#mean=均值,stddev=标准差
d=tf.random.normal([2,2],mean=0.5,stddev=1)
#生成截断式正态分布的随机数
#和前者相比,后者更向均值0.5集中
e=tf.random.truncated_normal([2,2],mean=0.5,stddev=1)
print(d)
print(e)
#生成均匀分布随机数
f=tf.random.uniform([2,2],minval=0,maxval=1)
5、构建数据集
#切分传入张量的第一维度,生成输入特征/标签对,构建数据集
features=tf.constant([11,12,13,14])
labels=tf.constant([1,0,1,0])
dataset=tf.data.Dataset.from_tensor_slices((features,labels))
print(dataset)
for element in dataset:
print(element)
6、gradient
#with 结构记录计算过程,gradient求出张量的梯度
#利用gradienttape 实现某个函数对某个参数的求导过程
with tf.GradientTape() as type:
w=tf.Variable(tf.constant(3.0))
loss=tf.pow(w,2)
#gradient(函数,对谁求导)
grad=type.gradient(loss,w)
print(grad)
loss=w^2,loss对w求导=2w,带入3,最后结果为6.0。
7、enumerate
#枚举,enumerate,可以遍历每个元素,enumerate(列表名),输出为 索引:元素
seq=["one","two"]
for i,element in enumerate(seq):
print(i,element)
8、one_hot
我对one_hot,即独热编码的理解是,将输入的张量,按内容排序,给每个值一个对应的二进制状态,然后再按照输入的顺序,输出对应的二进制状态,如下
#one_hot 独热编码
#tf.one_hot()函数,将待转换数据,转换为one_hot形式的数据输出
#tf.one_hot(待转换数据,depth=几分类)
classes =3
#最小值为0,最大值为2
labels=tf.constant([1,0,2])
out_put=tf.one_hot(labels,depth=classes)
print(out_put)
9、softmax
tf.nn.softmax()函数通常用在,分析神经网络前向传播的结果,将这些结果经有softmax函数,变成符合概率分布的对应值(概率和为1)
#注意要如果输入的不是浮点数,要加上声明类型是浮点数,否则会报错
y=tf.constant([1,1,2],dtype=tf.float32)
y_pro=tf.nn.softmax(y)
print (y_pro)
结果是
10、assign_sub
tf.nn.softmax()函数通常用在,分析神经网络前向传播的结果,将这些结果经有softmax函数,变成符合概率分布的对应值(概率和为1)
y=tf.constant([1,1,2],dtype=tf.float32)
y_pro=tf.nn.softmax(y)
print (y_pro)
11、assign_sub
#赋值操作,更新参数的值并返回
#调用assign_sub前,要确认参数是可训练(可自更新),即用tf.Variable定义
#w.assign_sub(w要自减的内容)
w=tf.Variable(6)
w.assign_sub(1)
print(w)
结果为5
12、argmax
返回张量沿指定维度,最大值的索引
#tf.argmax(张量名,axis=指定轴),若axis=0,为竖直方向,axis=1,为水平方向
test=np.array([[8,2,3],[4,5,6],[7,7,9]])
print(test)
print(tf.argmax(test,axis=0))
print(tf.argmax(test,axis=1))