cs231n作业1的不会函数,求导公式

看了下cs231n的作业,有些函数,求导公式不知道,搜了博文记一下

1 X.reshape(X.shape[0], -1)

X.reshape(X.shape[0], -1)可以将一个维度为(a,b,c,d)的矩阵转换为一个维度为(a, b∗c∗d,)的矩阵

X.shape
(209, 64, 64, 3)
#我们假设x的shape是(209, 64, 64, 3)的。
X.shape[0]
209
X.reshape(X.shape[0], -1)
(209, 64*64*3)

通过reshape重新建立维度,第一个维度就是X.shape[0],这就是正常的reshape操作;第二个维度是-1,我们知道X的shape属性是多少,是(209, 64, 64, 3),但是想让X变成209行,列数不知道是多少,所以也就是209 * 64 * 64 * 3 / 209,也就是64 * 64 * 3。

总结一下,参数-1就是不知道行数或者列数多少的情况下使用的参数,所以先确定除了参数-1之外的其他参数,然后通过(总参数的计算) / (确定除了参数-1之外的其他参数) = 该位置应该是多少的参数。

2 plt.imshow()

plt.imshow()函数负责对图像进行处理,并显示其格式,但是不能显示。
其后跟着plt.show()才能显示出来。

3 numpy.bincount

import numpy as np
y = np.bincount([3,4,7,3,8,4])
print(y)

打印y结果:[0 0 0 2 2 0 0 1 1]

那么,返回结果应该是含有九个数字(0-8共九个数字)的列表:代表原列表中0-8共9个数字出现的次数

结合原列表具体看:

[0 0 0 2 2 0 0 1 1]中,

                                第一个元素0,代表[3,4,7,3,8,4]中,0出现了0次
                                第二个元素0,代表[3,4,7,3,8,4]中,1出现了0次

                                第三个元素0,代表[3,4,7,3,8,4]中,2出现了0次

                                第四个元素2,代表[3,4,7,3,8,4]中,3出现了2次

                                第五个元素2,代表[3,4,7,3,8,4]中,4出现了2次

                                 ......

                                第九个元素1,代表[3,4,7,3,8,4]中,8出现了1次

4 np.linalg.norm(a)

默认参数(矩阵整体元素平方和开根号,不保留矩阵二维特性)

5 np.sum(X,axis=1,keepdims=True)

keepdims=True,保持矩阵的二维特性

import numpy as np
a = np.array([[1,2],[3,4]])
 
# 按行相加,并且保持其二维特性
print(np.sum(a, axis=1, keepdims=True))
 
# 按行相加,不保持其二维特性
print(np.sum(a, axis=1))


输出
array([[3], [7]])
array([3, 7])

6 numpy array_split

可不均等划分数据,np.array_split(x, n),x原数据,n划分成几分

x = np.arange(8.0)
np.array_split(x, 3)
 #[array([ 0.,  1.,  2.]), array([ 3.,  4.,  5.]), array([ 6.,  7.])]

7 pop

pop方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除

 x = {'a':1,'b':2}
 x.pop('a')
 1
 
 x
{'b': 2}

8 np.vstack()函数

函数原型:vstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组

9 list()

range(2)表示range(0,2),即0,1,
y为0,1
range(0,2)和list(y)中数目相对应,共同决定矩阵a的下标
(0,0)和(1,1),第0行0列,第1行1列

>>> a
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11]])
>>> y=np.arange(2)
>>> y
array([0, 1])
>>> a[range(2),list(y)]
array([0, 7])

10 np.random.choice

def choice(a, size=None, replace=True, p=None)
表示从a中随机选取size个数
replacement 代表的意思是抽样之后还放不放回去,如果是False的话,那么通一次挑选出来的数都不一样,如果是True的话, 有可能会出现重复的,因为前面的抽的放回去了。
p表示每个元素被抽取的概率,如果没有指定,a中所有元素被选取的概率是相等的。

svm求导

在这里插入图片描述

在这里插入图片描述

softmax求导

在这里插入图片描述
来源:搜索查找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值