cs231n作业中的一些问题

cs231n作业中的一些问题

  • 常见函数
      • 1. np.flatnonzero()
      • 2. matplotlib.pyplot.subplot(a,b,c)
      • 3.mask
      • 4.np.shape reshape

常见函数

1. np.flatnonzero()

idxs = np.flatnonzero(y_train == y)

此处flatnonzero函数是输入一个矩阵,返回扁平化后非零函数的位置。举个例子:

k = np.array([[20,10,5],[1,2,3]])
temp = np.flatnonzero(k)
print(temp)

输出为

[0 1 2 3 4 5]

而对于作业1中的

idxs = np.flatnonzero(y_train == y)

则会返回y_train == y的元素位置。

2. matplotlib.pyplot.subplot(a,b,c)

意为要画一个a*b大小的图,现在要画第c个图了。这里需要注意c从1开始而非从0开始。

3.mask

在一个50000x32x32x3的矩阵中蒙上一个1000的mask,则得到一个1000x32x32x3的矩阵。比如在231n作业中X_train为一个50000x32x32x3的矩阵,但在进行操作

num_training = 5000
mask = range(num_training)
X_train = X_train[mask]

后,则变为一个5000x32x32x3的矩阵。

4.np.shape reshape

shape返回当前数组的大小
reshape拉伸数组操作
np.reshape(a,b)
把a数组水平拉到b长度
np.reshape(a,(b,-1))
把a拉伸到b*x的大小。
接上例中

X_train = np.reshape(X_train, (X_train.shape[0], -1))

则会得到5000*3072的矩阵。

你可能感兴趣的:(CS231n)