小白笔记:深度学习之Tensorflow笔记(六:神经网络优化过程)

预备知识

tf.where():
tf.where(条件语句,真返回A,假返回B) :条件语句真返回A,条件语句假返回B

a=tf.constant([1,2,3,1,1])
b=tf.constant([0,1,3,4,5])
c=tf.where(tf.greater(a,b), a, b) # 若a>b,返回a对应位置的元素,否则返回b对应位置的元素
print("c:",c)

运行结果:

c: tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)

np.random.RandomState.rand()
np.random.RandomState.rand(维度) :返回一个[0,1)之间的随机数,若维度为空,返回标量

import numpy as np
rdm=np.random.RandomState(seed=1)   # seed=常数每次生成随机数相同
a=rdm.rand() # 返回一个随机标量
b=rdm.rand(2,3) # 返回维度为2行3列随机数矩阵
print("a:",a)
print("b:",b)

运行结果:

a: 0.417022004702574
b: [[7.20324493e-01 1.14374817e-04 3.02332573e-01]
[1.46755891e-01 9.23385948e-02 1.86260211e-01]]

np.vstack()
np.vstack(数组1,数组2):将两个数组按垂直方向叠加

import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.vstack((a,b))
print("c:\n",c)
c:
[[1 2 3]
[4 5 6]]

np.mgrid[ ] 、 .ravel( )、 np.c_[ ]
np.mgrid[ 起始值 : 结束值 : 步长 ,起始值 : 结束值 : 步长 , … ]
x.ravel( ) 将x变为一维数组,“把. 前变量拉直”
np.c_[ ] 使返回的间隔数值点配对
np.c_[ 数组1,数组2, … ]

import numpy as np
x, y = np.mgrid [1:3:1, 2:4:0.5]
grid = np.c_[x.ravel(), y.ravel()]
print("x:",x)
print("y:",y)
print('grid:\n', grid)

运行结果:

x = [[1. 1. 1. 1.]
[2. 2. 2. 2.]]
y = [[2. 2.5 3. 3.5]
[2. 2.5 3. 3.5]]
grid:
[[1. 2. ]
[1. 2.5]
[1. 3. ]
[1. 3.5]
[2. 2. ]
[2. 2.5]
[2. 3. ]
[2. 3.5]]

神经网络复杂度

神经网络复杂度多用神经网络层数和神经网络参数的个数表示。
空间复杂度:
在这里插入图片描述
层数=隐藏层的层数+1个输出层
如上图:两层的神经网络
总参数=总w+总b
如上图:34+4(第一层)+42+2(第二层)=26
时间复杂度:
乘加运算次数,如上图:34(第一层)+42(第二层)=20

学习率

在这里插入图片描述
例如:
损失函数loss = ( w + 1 ) 2 (w+1)^2 (w+1)2 , 则w的偏导是2w+2
在这里插入图片描述

指数衰减学习率:

指数衰减学习率是先使用较大的学习率来快速得到一个较优的解,然后随着迭代的继续,逐步减小学习率,使得模型在训练后期 更加稳定。指数型学习率衰减法是最常用的衰减方法,在大量模型中都广泛使用。
指数衰减学习率 = ( 初 始 学 习 率 ∗ 学 习 率 衰 减 率 ) ( 当 前 轮 数 / 多 少 轮 衰 减 一 次 ) (初始学习率 * 学习率衰减率)^( 当前轮数 / 多少轮衰减一次 ) /
如下图,在这里插入图片描述
运行结果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值