CS231n Assiganment#1解析(一)——KNN

本文详细介绍了斯坦福深度学习课程CS231n的Assignment1,重点是KNN算法在CIFAR-10数据集上的应用。从下载和配置环境,到数据预处理、KNN实现,包括向量化和半向量化优化,以及交叉验证和最佳k值的选择,全方位解析KNN分类器的工作原理和效率。
摘要由CSDN通过智能技术生成

前言

          前段时间学习了深度学习入门课程斯坦福CS231n,巩固和理解课程的最佳方式就是完成课后代码作业。在这里记录下本人对作业的思考和解析,以供大家参考。

          关于CS231n学习笔记翻译,强烈推荐 知乎专栏

          配合笔记看视频,再完成作业,非常有效。

一、准备工作

1、作业Assignment1下载

        链接:https://pan.baidu.com/s/11tDkdBRy5ndwkKue_1vMuw 密码:jvgk

2、环境Anaconda2安装

         完成作业需要Python以及许多相关科学计算环境,建议大家直接安装Anaconda2,能够快速方便的配置,直接上手写作业。代码是Python 2.x版本,故选择Anaconda2-4.2.0-Windows-x86_64.exe,否则可能出现某些函数不兼容,造成不必要的麻烦。

3、数据集CIFAR-10下载

         简单介绍一下,CIFAR-10是一个只有10类图片的彩色图片数据库,共6w张32*32像素大小的图片,其中5w张是训练图片,1w张是测试图片,所有图片均已标记。

        选择CIFAR10 python version下载,解压后将数据放在cs231n/datasets目录下。

4、验证WebSockets是否可用

        作业在Ipython Notebook内完成,需要支持WebSockets。打开下述网页,若显示“WORK FOR YOU”,表示可用。

         测试链接:http://websocketstest.com/

        

         出现以上字样即可。

        若无法使用,需要翻墙。网上可用VPN有很多,大家可以搜索一下。

        至此准备工作全部完成,可以开始写作业啦。

二、作业解析

1、连接服务器

         如图所示,打开cmd,在[your path]/assignment1/目录下输入Ipython notebook 或者 Jupyter notebook,回车。

       

        更多Ipython notebook教程可参考 这里

        注意:一定要在目录下打开,否则后面会出现找不到包的情况。

                    退出的话输入ctrl+c,等待关闭即可。

       成功连上服务器后,你将在浏览器下看到如下界面:

      

       这次的作业就需要在knn.ipynb下完成。

2、运行代码

        选中代码块,ctrl+enter或shift+enter运行,区别是shift+enter会自动跳转到下一部分。页面右上角的圆圈表示运行状态,空心表示结束,实心表示正在运行。

                                                                                             

          下面对各部分代码进行补充和运行。

           kNN分类器包括两个部分:

  •     在训练的时候,分类器载入数据并仅仅记住他们(不做其他处理)
  •     在测试的时候,分类器依靠对测试图片和训练图片做对比,并且选出k个最相似的标签
  •     另外,k是依靠交叉验证确定的

         在这个作业中,我们将实现这些步骤并且理解基本的图像分类过程,理解交叉验证,并且学会写高效的向量化代码

3、代码解析

3.1  一些基本的初始化

 # Run some setup code for this notebook.
importrandom
importnumpy as np
fromcs231n.data_utils import load_CIFAR10
importmatplotlib.pyplot as plt

from__future__ import print_function
 

#This is a bit of magic to make matplotlib figures appear inline in the notebook
#rather than in a new window.
%matplotlibinline
plt.rcParams['figure.figsize']= (10.0, 8.0) # set default size of plots
plt.rcParams['image.interpolation']= 'nearest'
plt.rcParams['image.cmap']= 'gray'

#Some more magic so that the notebook will reload external python modules;
#see http://stackoverflow.com/questions/1907993/autoreload-of-modules-in-ipython
%load_extautoreload
%autoreload2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值