Tensorflow笔记1

1.张量(tensor)
tensorflow中的张量多维数组(列表),能够表示0~n阶的数组,张量的维数即为数组的阶数。举例说明如下:
·0维张量 <=>标量,如数字1,2,3等
·1维张量<=>一维向量,如[1,2,3]等
·2维张量<=>二维数组(矩阵),如[[1,2],[2,3]]等
tensorflow中创建一个张量的语法为

tf.constant(张量内容,dtype=数据类型(可选))

其中tensorflow中的数据类型有如下几种:
·数字类型,如tf.int16,tf.int32,tf.int64,tf.float32,tf.float64等;
·bool类型,tf.bool;
·字符串类型,tf.string;
下面以创建一个一维张量为例,说明如何创建张量:

import tensorflow as tf
a=tf.constant([1,5],dtype=tf.int32)
print(a)
print(a.dtype)
print(a.shape)

2.常用的创建张量的函数
·创建全为0的张量

tf.zeors([维度])

·创建全为1的张量

tf.ones([维度])

·创建全为指定值的张量

tf.fill([维度],指定值)

例子:

a2=tf.zeros([2,2],dtype=tf.int32)
b2=tf.ones(5,dtype=tf.float32)
c2=tf.fill([2,3],9)
print(a2)
print(b2)
print(c2)

·生成正态分布的随机数张量

tf.random.normal([维度],mean=均值,stddev=标准差)
mean的默认值为0,stddev的方差默认值为1

·生成截断式正态分布随机数(在两倍标准差间的随机数)

tf.random.truncated([维度],mean=均值,stddev=标准差)

·生成在[minval,maxval]间均匀分布的随机张量

tf.random.uniform([维度],minval=最小值,maxval=最大值)

例子:

a3=tf.random.normal([2,2],mean=0.5,stddev=1)
print(a3)
b3=tf.random.truncated_normal([2,3],mean=0.1,stddev=1)
print(b3)
c3=tf.random.uniform([2,1],minval=-1,maxval=1)
print(c3)

3.Tesorflow中的常用函数
·强制将张量转化为该数据类型

tf.cast(张量名,dtype=要转换的数据类型)

·计算张量元素中的最大、最小值

tf.reduce_max(张量)
tf.reduce_min(张量)

·沿着指定维度计算均值与求和

tf.reduce_mean(张量,axis=维度)
tf.reduce_sum(张量,axis=维度)

例子:

x1=tf.constant([1.,2.,3.],dtype=tf.float32)
print(x1)
x2=tf.cast(x1,dtype=tf.int32)
print(x2)
print(tf.reduce_min(x2),tf.reduce_max(x2))
x=tf.constant([[1,2,3],[2,2,3]],dtype=tf.int32)
print(tf.reduce_mean(x,axis=0))
print(tf.reduce_mean(x,axis=1))
print(tf.reduce_sum(x,axis=0))

·标记张量为可训练的函数,标记的变量会在反向传播中记录梯度信息

tf.Variable(初始张量)

·常用的数字运算函数
张量的维度相同时,有加、减、乘、除四则运算

加法:tf.add(张量1,张量2)
减法:tf.subtract(张量1,张量2)
对应元素相乘:tf.multiply(张量1,张量2)
对应元素相除:tf.divide(张量1,张量2

例子:

a4=tf.ones([2,3],dtype=tf.int32)
b4=tf.fill([2,3],5)
print(tf.add(a4,b4))
print(tf.subtract(a4,b4))
print(tf.multiply(a4,b4))
print(tf.divide(a4,b4))

·开平方,平方,开方运算

开平方:tf.sqrt(张量)
平方:tf.square(张量)
开方:tf.pow(张量,指数)
例子:
a5=tf.fill([3,3],2.)
print(tf.square(a5))
print(tf.pow(a5,3))
print(tf.sqrt(a5))

·矩阵乘

tf.matmul(张量1,张量1)

例子:

a6=tf.ones([3,2])
b6=tf.fill([2,3],4.)
print(tf.matmul(a6,b6))

·将特征与标签匹配函数

tf.data.Dataset.from_tensor_slices((输入特征,标签))
该函数会切分输入特征的第一维度,生成(输入特征,标签)的数据对,构建数据集

例子:

a7=tf.constant([[1,2],[3,4],[5,6],[7,8]])
b7=tf.constant([1,0,1,0])
dataset=tf.data.Dataset.from_tensor_slices((a7,b7))
for element in dataset:
    print(element)

·梯度求解函数

tf.GradientTape().gradient(函数,求导变量)

例子:

with tf.GradientTape() as tape:##with结构记录计算过程
    w=tf.Variable(tf.constant(3.0))
    loss=tf.pow(w,2)
grad=tape.gradient(loss,w)##计算梯度
print(grad)

·独热编码(One-hot encoding)

tf.one_hot(待转换的数据,depth=分几类)

例子:

classes=3
labels=tf.constant([1,0,4])
output=tf.one_hot(labels,depth=classes)
print(output)

·归一化指数函数softmax

tf.nn.softmax(输出值)

例子:

y=tf.constant([1.01,2.01,-0.66])
y_pro=tf.nn.softmax(y)
print(y_pro)

·自增自减更新操作函数

对于Variable类型的可更新类型的张量,可用下面的函数实现更新:
w为张量
w.assign_sub(减少的值)
w.assign_add(增加的值)

例子:

w=tf.Variable(4.0)
w.assign_sub(1)
print(w)
w.assign_add(1)
print(w)

·返回指定维度最大值、最小值的索引

tf.argmin(张量,axis=维度)
tf.argmax(张量,axis=维度)
test=np.array([[1,2,3],[2,2,3],[4,5,6],[5,5,2]])
print(test)
print(tf.argmax(test,axis=0))
print(tf.argmax(test,axis=1))
print(tf.argmin(test,axis=0))
print(tf.argmin(test,axis=1))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值