第二讲--神经网络优化_神经网络复杂度

1、补充几个函数

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

            tf.where(条件语句,AB)

示例:

 

import tensorflow as tf
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(维度)   ---  返回一个【01)之间的随机数。维度为空,返回标量

示例:

 

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(数组1,数组2)  --- 将两个数组按垂直方向叠加

示例:

 

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

运行结果:
c:
 [[1 2 3]
 [4 5 7]]

 np.mgrid[ ]   .ravel()   np.c_[ ]  ---- 3个常一起使用,可生成网格坐标点

np.mgrid[ 起始值:结束值:步长,起始值:结束值:步长,。。。]

--  返回若干组维度相同的等差数组;

--  每组有起始值,结束值,步长;

--  多组起始值,结束值,步长中间用逗号隔开

--  【起始值,结束值)前闭后开区间

x .ravel()  -- 将x变为一维数组,相当于“把 .前的变量x拉直”

np.c_[数组1数组2,。。。]  -- 把数组点配对后返回

示例:

import numpy as np
x1 = np.mgrid[1:3:1]
y1 = np.mgrid[2:4:0.5]
print("x1:",x1)
print("y1:",y1)

x, y = np.mgrid[1:3:1, 2:4:0.5]   #  1:3:1 对应x的取值,2:4:0.5 对应y的取值范围,为保证两个数组维度相同,均取了2行4列
grid = np.c_[x.ravel(), y.ravel()]
print("x:\n", x)
print("y:\n", y)
print("x_ravel:",x.ravel())   # 将x变为一维数组,相当于“把 .前的变量x拉直”
print("y_ravel:",y.ravel())
print("grid:\n",grid)            # 将 x.ravel(), y.ravel()配对

x1: [1 2]
y1: [2.  2.5 3.  3.5]
x:
 [[1. 1. 1. 1.]
 [2. 2. 2. 2.]]
y:
 [[2.  2.5 3.  3.5]
 [2.  2.5 3.  3.5]]
x_ravel: [1. 1. 1. 1. 2. 2. 2. 2.]
y_ravel: [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]]

 

2神经网络(NN)复杂度

  • 神经网络(NN)复杂度:多用NN层数和NN参数的个数表示。

空间复杂度

  • 层数 = 隐含层的层数 + 1个输出层 

             下图为2层NN

  • 总参数 = W + 总b

             下图总参数 3x4+4   +  4x2+2 =26

                                 第1层      第2层

    因输入层仅输入数据,未涉及运算,故在统计神经网路层数时,不算输入层。

时间复杂度:

  • 乘加运算次数

   下图  3x4    +   4x2   =20

          第1层     第2层

                                  

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值