cs231n作业的网站(注意这个网站上不仅有三次的作业,还有对应python numpy的指导和jupyter notebook的指导等等:点击打开链接
在看了cs231n的课程之后,在完成assignment1的时候出现了很多问题,特别是在服务器上配置使用jupyter notebook。
作业的要求及配置及下载网站:点击打开链接
一、环境配置
(1)输入命令:ssh node18@192.168.137.118
(2)进入~目录
(3)运行./deploy_container_with_gpu.sh
,但是需要注意的是你单独运行这个就没有给你的docker进行端口的映射,在你使用jupyter notebook的时候外部是访问不到的,所以需要你进行 端口映射,注意这里个人情况不一样,因为我们运行这个脚本就可以了,但是你可以需要docker run命令进行映射。完成输入命令:
./deploy_container_with_gpu.sh
-p 3065:8080。我们这里随便给宿主机一个端口映射到container的端口之上,但由于jupyter的默认端口貌似是8888,你这里可以修改port 3065:8888,当然了我已经这样了,我就不改了,最后在运行jupyter notebook的时候指定端口就行。
(4)接着可能就是输入你的镜像和要求你输入你的container的名字,你起一个记住就行比如这里是sss-tf,这里之后每次登录要用。
(5)docker start sss-tf
(6)docker attach sss-tf
(7)cd /data2
(8)mkdir 你的名字的目录
(9)cd 你的目录
(10)安装anaconda3,去官网下载一个对应自己版本的执行脚本sh
(11)之后你退出,到你的本机进行挂载网络盘符在执行ssh node04@192.168.137.104
(12)sudo chown -R node04:node04 /data2/你的文件夹
(13)回到你自己的电脑,执行
sudo mkdir /data2
sudo mount -t cifs -o username=node04,password=123456 //192.168.137.104/data2 /data2
(14)最后下载好了之后肯定是下载到了你的Downloads下面。那么你在你的本机,执行cd Downloads
(15)将你下载好的,你执行ls看看应该会有一个sh文件,我的就是anaconda3-5.1.0-Linux-x86_64.sh,
这个都是对应你的电脑的!
(16)在downloads目录下执行命令,cp -i anaconda3-5.1.0-Linux-x86_64.sh /data2/sss/这样之后你再进去服务器就会发现你的sh出现在了里面,之后在执行这个脚本就可以了。
(17)
bash Anaconda3-5.1.0-Linux-x86_64.sh
(18)按照提示来就行,之后修改环境变量。自己手动在.bashrc文件中添加export PATH="/opt/anaconda3/bin:$PATH"
,然后再在命令行中输入source ~/.bashrc,
注意在每台电脑上是不一样的,你看他给出的提示信息,像我在自己电脑上的~/.bashrc就是不同的,export PATH=/home/syq/anaconda3/bin:$PATH
(19)之后来到你的服务器,你登录之后在你自己的目录下,你输入jupyter notebook --allow-root --port 8080 --ip 0.0.0.0 (这里需要指定端口,会出现token,第一次复制下来要用) tensorboard --port 8080 --ip 0.0.0.0 --logdi
r="/data3/pointcloud_registration/dcp-master/checkpoints/dcp_v1"
(20)在你本地的浏览器打开192.168.137.118:3065,第一次登录可能需要token,你就把之前的你terminal里面的token复制下来就行
以上就是环境配置的问题了,之前我就只会登录服务器,也不会配置docker端口映射,只有你进行了docker的端口映射,才能够实现网络的访问,但是多数网上的教程只是教会了你如何配置jupyter的配置文件,其实本质输入那行jupyter notebook的命令是一样的。但是你没有做docker的端口映射都是白搭!!!
下面是一张完整的端口示意图:
补充:在此基础上配置tensorflow:
之前我们安装好了anaconda3,现在我们需要在此基础上安装tensorflow,首先
输入命令:conda create -n tensorflow python=3.6
接着source activate tensorflow
接着pip install tensorflow-gpu==1.2,我们这里服务器最高只能安装1.2版本(那对于你自己的电脑的话,我没办法安装gpu版本,只能按照cpu版本,那么只需要输入pip install tensorflow,它会自动的选择最高的版本1.7)
小提示:我之前安装anaconda3的时候,安装错了,我执行的是sudo bash 。。。。.sh这样的话,我安装好的anaconda3就是一个属于root的目录,使得后面安装TensorFlow的地址就不会实在anaconda3/envs之下了,而是在。。。。我忘了提示是什么了。怎么删除呢,anaconda3安装是一个完整的文件夹直接删除就行,怎么删除这个创建了的tensorflow呢,因为你是conda create的,所以你执行命令conda remove -n tensorflow --all(这时候才可以conda create新的tensorflow的环境,否则总是报错已经存在的前缀好像是。。。忘了)
安装成功后,输入python,输入import tensorflow as tf没有报错就是成功了!
补充:安装opencv
之前我采用的是conda安装,但是之后报错了,你们可以先试试这个命令conda install opencv,但是在我import cv2的时候总是报错,我上网找了删除命令conda remove opencv。之后我采用的是pip安装,pip install opencv-python
补充:安装matplotlib
conda install matplotlib
补充:安装keras
pip install keras
补充:安装skimage
pip install scikit-image
二、assignment1的代码和解释
(1)KNN-推荐先阅读一下课程的课件:点击打开链接
为什么使用knn,而不使用nn,是因为nn的判定是经常性的出错的,相反的是KNN具有平滑决策边界的作用,同时更能反抗异常点的出现。那么我们如何的选择这个超参数k呢!一般是在交叉验证集和测试集上选择,选择那些在交叉验证集上表现好的,之后再在test集上进行评估。需要注意的是测试集仅在最后的时候才使用,不到最后我们不使用测试集。比如说我们的CIFAR-10,它本身是具有50,000个训练集和10,000个测试集的,但是我们现在在训练集的基础上划分出来1000个作为交叉验证集。
当你需要应用KNN的时候,我们建议你按照下面的步骤进行操作:
1.预处理你的数据(归一化),使得数据的均值为0,方差为1,且拉成向量的形式;
2.如果你的数据是高维的数据,我们建议你进行pca来进行降为;cs229:点击打开链接
3.随机的划分你的数据成为