【记录贴】cs231n课程作业一遇到问题总结

1. 在本地完成作业环境配置

cs231n课程课后作业是要求在ipython中完成并提交的,所以选择anaconda来做比较合适。关于anaconda的安装与使用可自行百度,教程很多。

选择好编译器之后就可以从官网上下载作业压缩包和数据集了。这里强调一下数据集的下载:点击打开链接,打开网址下拉选择

Version Size md5sum
CIFAR-10 python version 163 MB c58f30108f718f92721af3b95e74349a

这个选项下载即可。下载到assignment1/cs231n/datasets/  目录下执行命令:

cd assignment1/cs231n/datasets/  
./get_datasets.sh  

前期准备工作就完成了,可以打开ipython愉快地做作业了。

2.Python Error: no module named 'past'

由于目前普遍使用的是python3版本,其中已经移除 xrange 这一操作(具体来说是与range合并了)。但是在作业的实例代码中考虑python2和python3版本的兼容,仍然使用了xrange操作。于是对于python3版本用户来说就需要重新引入:

from past.builtins import xrange

但是在运行的时候就遇到了no module named 'past'问题,原因是没有安装past库

但是这里比较坑的一点就是安装past库使用的代码竟然是

pip install future

竟然是future!!!

3. Python Error: object too deep for desired array                                   

在运行knn.ipython文件的最后一步时候跳出错误object too deep for desired array,提示说是在k_nearest_neighbor.py的predict_labels函数出现了错误,后来在网上找了很久之后发现是由于在对统计频数的时候使用np.bincount()出现问题。

依照博主的代码修改之后果然就运行顺畅了。这里附上链接:点击打开链接

for i in range(num_test):
  closest_y = []
  closest_y = self.y_train[np.argsort(dists[i, :])[:k]].flatten()
  c = Counter(closest_y)
  y_pred[i]=c.most_common(1)[0][0]
  """
  closest_y=self.y_train[np.argsort(dists[i, :])[:k]]      
  y_pred[i] = np.argmax(np.bincount(closest_y))
  """

4. TypeError: slice indices must be integers or None or have an                             __index__ method

在完成feature.ipython时,对图像数据进行预处理提出特征,出现了如题所示的错误信息,这是由于在使用python进行矩阵操作时当内部含有除法时,而除法“/”自动产生的类型是浮点型,因此出现上述错误,修正方法为,将“/”更改为"//"即可。

即在feature.py文件中将

orientation_histogram[:,:,i] = uniform_filter(temp_mag, size=(cx, cy))[cx/2::cx, cy/2::cy].T

修改为:

orientation_histogram[:,:,i] = uniform_filter(temp_mag, size=(cx, cy))[cx//2::cx, cy//2::cy].T
即可正常运行。



以上~

2018.06.02



你可能感兴趣的:(Computer,Vision)