反向传播案例实战
说明我们将实现一个 4 层的全连接网络,来完成二分类任务。 网络输入节点数为 2,隐藏层的节点数设计为: 25、 50和25,输出层两个节点,分别表示属于类别 1 的概率和类别 2的概率,如下图所示 生成数据12from sklearn.datasets import make_moons from sklearn.model_selection import train_test_split 123N=2000test_size=0.3X,y=make_moons(n_samples=N,noise=0.2,random_state=100) 划分训练集和测试集1X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=test_size,random_state=42) 1print(X.shape,y.shape) (2000, 2) (2000,) 数据可视化1234import matplotlib.pyplot as...
反向传播算法推导
...
关于神经网络的哲学【HuLuan】思考
神经网络中有许多权重,每一个权重的变化都可能导致最终预测结果产生变动。为了最大可能获得较佳的预测结果,需要考虑合适的损失函数,激活函数以及优化器等,并通过训练,反反复复调整权重,直至得到满意的结果。 万象世间亦如是。 你所经历的每一件事,你所遇见的每一个人,于你而言都会在心中自动初始化一个权重。时间和事件会训练你的模型,为了最小化损失函数,也就是达成你的目的,你会一遍又一遍的采取措施来调整每一个权重。 不仅仅是你,每个人,每个生命,所有物质都在无时无刻的更新着自己的权重。于是地球围绕太阳转动,太阳东升西落,东西方产生时差,而现在,你正在阅读这些文字。 调整吧 就像歌中唱的那样:...
Tensorflow中的高级操作
tf.gather可以实现根据索引号收集数据 假设有4个班级,每班35人,共8门课程的成绩 举几个栗子 它等价于 但是对于不规则(连续)的索引,还是tf.gather()更强大 通过组合多个tf.gather,可以实现复杂一点的功能 现在,想要抽查第 2 个班级的第 2 个同学的所有科目, 第 3 个班级的第 3 个同学的所有科目,第 4 个班级的第 4 个同学的所有科目 这个更复杂了 可以这样 然后用stack()合并 但是还有更好的方法,那就是tf.gather_nd tf.gather_nd也是根据索引号收集数据,只不过比tf.gather更灵活些 继续上面的例子 变得简洁了,只需传入一个列表 再举个复杂点的栗子:选取1班的学生1的科目2、2班的学生2的科目3、班级3的学生3的科目4的成绩,共有3个成绩数据 tf.boollean_mask以掩码方式选取数据 这里的 tf.boolean_mask 的用法其实与 tf.gather 非常类似,只不过一个通过掩码方式采样,一个直接给出索引号采样 ...
Tensorflow进阶
张量合并1.拼接 2.堆叠 无论哪种方式,相应维度必须一致 分割合并的逆过程 将1个张量拆成多个张量 1. split等份分割 不等份分割传入列表,表示分割后每一部分的长度 2....
Tensorflow基础
Tensor是什么 张量的维度也称作轴 (Axis) 一般把标量、向量、矩阵也统称为张量 TF中的数据类型数值,布尔,字符串 1.数值类型 在tf中创建标量 使用.numpy可以返回Numpy.array类型的数据 在tf中创建向量 此时,必须使用List容器传值 在tf中创建矩阵 在tf中创建三维张量 2.字符串类型 不怎么用,Python内置的字符串方法已经足够 3.布尔类型 tf的布尔类型和Python内置的布尔类型不等价 类型转换numpy ==> tensor 一般的,使用cast函数可完成不同数据类型,数据精度之间的转换 int ==> bool bool ==>...
分支循环,效率加速器-Python基础连载(八)
开篇你可能已经发现,前面的七期内容有一个共同的特点,那就是偏向理论基础,似乎学完之后只是了解了一些实用的方法,比如字符串如何进行增删改查,如何交互实现输入输出,Python运算符的种类等等。 此刻的你,是不是一点也没有感受到程序带来的效率翻倍? 今天就来填补这个大坑,一起来学习分支和循环吧! 分支所谓分支,可以形象的理解为一棵树的分叉: 满足哪个条件,就往哪个分叉方向前进。 写成Python伪代码的格式如下: 这便是最简单的分支结构:if...else... 还记得之前讲的缩进吗?在这里,:之后按回车键就会自动缩进了,一个缩进相当于按一次Tab键 缩进的存在,使得Python代码的可读性更强。 再举两个栗子来练习一下,建议小白同学手动敲一遍: 【栗子1】数字比较 123456x=1y=2if x>y: print('x比y大!')else: ...
小小运算符,构筑大世界-Python基础连载(七)
开篇本期将介绍Python的运算符。 在正式开始之前,应该给运算符下个教科书式定义: 1运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算(百度百科) 好吧,这定义越看越晕。不管他了,咱们直接开始,在实际操作中理解运算符! 需要注意的是,你如果见到x=x+1这种操作,千万不要把这与数学上的操作混为一谈。 前面也提起过,在数学上,x=x+1中的=是等于的意思,而在编程语言中,=是赋值的意思,将=右边的值赋值给=左边。 所以,x=x+1在数学上是不成立的,但是在编程语言中,是将变量x做了加1的操作。 算数运算符1. + :加法运算 2. -:减法运算 3. *:乘法运算 4. / :普通除法运算 5. // :整数除法(整除)运算 6. ** :平方运算,a**b代表求a的b次方 7. % :取余运算 上个栗子: 12345678>>> 1+12>>> 1-10>>> 1*22>>> 3/21.5>>> 3//21>>>...
跳动的数字,熟悉又陌生-Python基础连载(六)
开篇经过前面与字符串的相爱相杀,相信你已经初步掌握了字符串的基本用法。本期将开始学习一个新的数据类型:数字。 在初高中,你已经学习了整数,小数,复数,这些包含在今天要讲的Python的数字类型中,正如上图所示(注:在这里你可以先把浮点数理解成小数,这对于之后的编程几乎没有影响,但随着学习的深入,你可能会发现这种理解是片面的)。 下面来逐个击破~ int &...