TensorFlow学习笔记——(1)神经网络设计过程
程序员文章站
2024-03-14 11:45:40
...
最近在学习TensorFlow搭建神经网络,记录下笔记呀~
视频课程-B站-北京大学人工智能实践-TensorFlow2.0
通过一个例子来认识神经网络的设计过程
鸢尾花分类
有三种鸢尾花:0狗尾草鸢尾,1杂色鸢尾,2弗吉尼亚鸢尾,当给一个新的图片是,怎么判断是哪类鸢尾呢?
专家系统:把专家的经验告知计算机,计算机执行逻辑判别(理性计算),给出分类。比如这里可以用if语句case语句(花萼长>花萼宽且花瓣长/花瓣宽>2 则为1杂色鸢尾)
神经网络:采集大量(花萼长、花萼宽、花瓣长、花瓣宽(输入特征),对应类别(标签,需人工标定))数据对构成数据集,将数据集喂入搭建好的神经网络结果,网络优化参数得到模型,模型读入新输入特征,输出识别结果。
神经元计算模型——MP模型
前向传播过程
损失函数
表征网络前向传播推理和标准答案之间的差距
梯度下降法
寻找损失函数的最小值,下面给出了梯度下降中参数更新的公式
优化参数w就是找到一个参数w,使得损失函数的值最小
import tensorflow as tf
# 设置参数w的随机初始值为5,设定为可训练
w = tf.Variable(tf.constant(5,dtype=tf.float32))
# 学习率
lr = 0.999
# 循环迭代40次
epoch = 40
# for epoch 定义顶层循环,表示对数据集循环epoch次,此例数据集
for epoch in range(epoch):
with tf.GradientTape() as tape: # with结构到grads框起了梯度的计算过程
loss = tf.square(w + 1)
grads = tape.gradient(loss,w) # .gradient函数告知谁对谁求导
w.assign_sub(lr * grads) # .assign_sub对变量做自减,即w -= lr*grads
print("after %s epoch,w is %f,loss is %f" %(epoch,w.numpy(),loss))
# lr初始值0.2 请自改学习率0.001 0.999 看收敛效果
# 最终目的:找到loss最小,即w=-1的最优参数w
上一篇: BindsNET 安装
下一篇: 神经元模型篇_LIF
推荐阅读
-
TensorFlow学习笔记——(1)神经网络设计过程
-
人工智能实践:TensorFlow笔记学习(八)—— 卷积神经网络实践
-
B站吴恩达深度学习视频笔记(13)——实战1:动手搭建第一个神经网络
-
java设计模式学习笔记1-简单工厂模式
-
设计模式学习笔记(1):工厂模式
-
tensorflow学习笔记之简单的神经网络训练和测试
-
老查的ARM学习笔记:chapter-1(按键驱动程序设计)
-
tensorflow学习笔记(北京大学) tf4_5.py 完全解析 设损失函数 loss=(w+1)^2
-
tensorflow学习笔记------神经网络优化
-
javascript学习全过程-----js学习笔记(1)------js的基础语法