bingcheng1998 / Cs231n 2020 Spring Assignment Solution
Labels
Projects that are alternatives of or similar to Cs231n 2020 Spring Assignment Solution
CS231n-2020-spring-assignment-solution
TODO:
- [x] Assignment #1 (Finished 2020/9/12)
- [x] Assignment #2 (Finished 2020/9/27)
- [x] Assignment #3 (Finished 2020/10/8)
- [ ] Notes
- [x] HyperQuest (try it HERE)
Important Notice
- DO NOT use
%%timeit
when use CUDA in pytorch!!! If you use it, the program will run for several times uselessly. - For numpy axis: Axis or axes along which an operation is performed. eg:
np.sum([[0, 1], [0, 5]], axis=1)
will getarray([1, 5])
. (To sum up, axis on which means which axis will disappear)
HyperQuest
HyperQuest mimics the hyper parameter tuning app from Stanford University, CS231n. HyperQuest is a web-app designed for beginners in Machine Learning to easily get a proper intuition for choosing the right hyper parameters. This is initially an extremely daunting task because not having proper hyper parameters leads to the models breaking down.
Try HyperQuest HERE!
Interesting Examples
KNN
Visualize the distance matrix: each row is a single test example and its distances to training examples:
Explain:
As you can see above, the background of those images which is similar to many other images is black. Because there are many other images that have a black color on its margin, while the white part of those images is rarely seen in other images, which will cause a large difference, so will generate the white bar.
Find best
k
for kNN:
SVM v.s. Softmax
SVM
Softmax
It can be found that softmax is much smoother than SVM, which means it’s more generalized.
2-layer net with different dtype
With dtype
np.single
, visualize the weights of the first layer:
With dtype
np.float64
, visualize the weights of the first layer:
As you can see, there is no difference.
Style Transfer GIFs
By watching the first iteration we can find that there is no difference between starting with a random image or starting with the original image.