tensorflow学习笔记(1)
tensorfolw的环境搭建(anaconda版,一步到位)
视频里环境搭建过程很详细,就不细说了。(视频中也有配置视频,链接在文末) 另外,本笔记只是我记忆难记的地方写的,不喜勿喷。 课程环境(python3.7 、tensorfow2.1)
lr为学习率,w为权重。(lr太小,参数更新很慢;lr太大,会在最小的损失值左右摆动)
反向传播,梯度下降,使损失函数减小的过程,权重更新的过程。
import tensorflow as tf w = tf.Variable(tf.constant(5, dtype=tf.float32)) Ir = 0.2 epoch = 40 for epoch in range(epoch): with tf.GradientTape() as tape: loss = tf.square(w+1) grads = tape.gradient(loss, w) # 求梯度 w.assign_sub(Ir * grads) # w = w - Ir(0.2) * grads(12) print("After %s epoch, w is %f, loss is %f" % (epoch, w.numpy(), loss))tf.Varable 创建一个可训练的张量 tf.GradienTape()函数可以实现某个函数对某个参数求导的过程。(相当于高中数学老师对你们说的,y对x求导的过程)
输出结果:
''' ########创建一个张量######### 创建一个全为0、1的张量 tf.zeros(维度) tf.ones(维度) 创建全为指定值得张量 tf.fill(维度, 指定值) 生成正态分布的随机数,默认值为0,标准差为1 tf.random.normal(维度, mean=均值, stddev=标准差) 生成截断式正态分布的随机数 tf.random.truncated_normal(维度, mean=均值, stddev=标准差) 生成均匀分布随机数 tf.random.uniform(维度, minval=最小值, maxval=最大值) '''通常用在:
seq = ["aaa", "bbb", "ccc"] for i, element in enumerate(seq): print(i, element)运行结果: 也就是元素的索引和元素相对应着输出,在后面深度学习中,经常用在选取某目标的识别准确率的选取上。
概率分布,通过该函数确定3分类问题中各个分类的可能性,并且三个类别可能性相加为1.(3类是举例,其实几类都行,这里有点像高中概率问题)
tf.argmax(张量名,axis = 操作轴) 返回列表中最大值的索引
