Tensorflow笔记 | 1

参考视频:b站北大的Tensorflow课程,TF 2 的使用


神经网络:把采集的大量数据喂入搭建的网络,优化参数得到模型,模型输入新的特征,输出识别结果。

y=x*w+b

损失函数:可以用均方误差来表征

梯度下降法:沿着损失函数下降的方向,寻找损失函数的最小值,得到最优参数的方法

w(t+1)=w(t)-lr*dloss/dw(t)

b(t+1)=b(t)-lr*dloss/db(t)

学习率:梯度下降的步子大小 。过小:收敛太慢;过大:梯度在最小值附近震荡,甚至无法收敛

反向传播:从后向前,逐层求损失函数对每层神经元的偏导数,迭代更新所有参数

张量(Tensor):多维数组(列表)。张量可以表示0-n阶数组(列表)

数据类型:

tf.int,tf.float:tf.int32、tf.float32

tf.bool: tf.constant([True,False])

tf.string:tf.constant(["hello"])

创建张量:

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

 2)将numpy数据类型转换为Tensor类型

tf.convert_to_tensor(数据名,dtype=数据类型)

 3)特殊张量的创建

tf.zeros(维度)

tf.ones(维度)

tf.fill(维度,指定值)

维度写法:一维(直接写数字);二维:[行,列];多维:[n,m,j,k,...]

 生成正态分布随机数,默认均值为0,方差为1

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

截断式正态分布随机数

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

 生成均匀分布随机数[min,max]

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

 一些常用函数

强制tensor转换为该类型:tf.cast(张量名,dtype=类型)

计算张量维度上元素的最大/最小值:tf.reduce_max(张量名)/tf.reduce_min(张量名)

 理解axis:

axis=0,操作列,第0维度

axis=1,操作行,第一维度

若不指定axis,则所有元素均参与运算

计算张量沿着指定维度的均值:tf.reduce_mean(张量,axis=操作轴)

计算张量沿着指定维度的和:tf.reduce_sum(张量,axis=操作轴)

 tf.Variable()

将变量标记为可训练,被标记的变量会在反向传播中记录梯度信息。神经网络训练中,常用该函数标记待训练参数

tf.Variable(初始值)

 Tensorflow中的四则运算

tf.add(张量1,张量2)
tf.substract(张量1,张量2)
tf.multiply(张量1,张量2)
tf.divide(张量1,张量2)
只有维度相同的元素才能做四则运算

平方、次方、开方:tf.square(张量名),tf.pow(张量名,次数),tf.sqrt(张量名)
矩阵乘:tf.matmul(矩阵1,矩阵2)

 

 tf.data.Dataset.from_tensor_slices

切分传入张量的第一维度,生成输入特征/标签对,构建数据集

data=tf.data.Dataset.from_tensor_slices((输入特征,标签))

 tf.GradientTape

with结构记录计算过程,gradient求出张量梯度

with tf.GradientTape() as tape:
    若干计算过程

grad=tape.gradient(函数,对谁求导)

 enumerate是python的内嵌函数,可遍历每个元素,组合为索引:元素,常在for循环使用

enumerate(列表名)

 tf.one_hot

独热编码,在分类问题中,用独热编码做标签,标记为1是,0非。

在多分类问题中经常使用

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

 tf.nn.softmax

tf.nn,softmax(x)--使输出符合概率分布

 assign_sub

赋值操作,更新参数值并返回

调用assign_sub前,先用tf.Variable定义变量w作为可训练

w.assign_sub(w要自减的内容)

 tf.argmax

返回张量沿指定维度的最大值索引

tf.argmax(张量名,axis=操作轴)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值