美文网首页
后台运行jupyter notebook

后台运行jupyter notebook

作者: PolarBearWYY | 来源:发表于2018-11-07 16:58 被阅读244次

                                  超可❤的编程知识🌠🌙 

    ——jupyter notebook后台运行

         jupyter每次都需要被重新打开,一旦断开,就会影响程序的执行。所以我们在后台运行。

    具体操作如下:

    (1)打开ssh:连接到服务器,然后输入:screen -S notebook(这句是在说,新建一个后台的screen,notebook是它的名字,这个名字可以改)

    (2)输入:screen -ls(这个是为了看一下有没有我之前打开的,这个不是必须的)

    (3)输入:jupyter notebook

    (4)先同时按ctrl+a,再输入d:

    好了,现在就是在后台了,这个就可以关了,而网页上面的jupyter还可以打开,正常使用~
    然后我试了一下,果然是对滴啊~果然关掉还不影响运行啊~真是太棒了啊~

    ❤几个小tips:

    (1)当数据集也传到服务器上面,与.py文件一起放在jupyter上面时,直接写相对路径即可:faces_2/即可;

    (2)在Windows上面用\,在linux上面用/

    (3)注意两个''//''那,第一个/就变成转义字符了,所以就出现了错误;

    ❤都弄好以后,看看服务器有几个显卡:

    (1)

    点击new,terminal

    (3)输入:watch -n 1 nvidia-smi

    原来四个都没人用,那我们就不客气了~

    ❤现在来将代码改一下,可以用cuda来跑:

    (1)这里需要修改:

    这里不用改动
    就是在最下面,加了这样一句,其中device_ids = [0, 1, 2, 3]这里就是用上了4个显卡

    (2)batch_size这里需要做些修改:

    这里,需要在data[0]与data[1]后面分别加上.cuda()
    好啦~把修改的再运行一下就好了~

    运行过程中,我ii了一下,结果就:

    内存占满了

    看看cuda:


    果然是占满了,真是太厉害了啊啊啊 我来自我反思一下,可能是刚才我看这个还在print(img_path),于是我就注释了这句,并且ii终止程序,而且又重新run all。那么之前的内存可能没有释放。

    我狮虎建议我重启内核(restart):


    果然,内存的占用率又迅速降低到了0

    然后再重新runall:

    但是同样的问题,再度出现,仍然是cuda内存占满了,仍然和上面一样。

    那应该是代码的问题了

    看下网络部分:

    这里怎么突然出现了14,我狮虎说,应该和vgg16的一样,怎么突然用这个transpose,这是转置卷积啊,一般的卷积都是越来越小,这个转置卷积是越来越大。而且卷积核是14,很大了!

    于是我被打了

    没事,这个打我挨~
    我狮虎说他,从未见过这么大的卷积核
    这两个可以直接去掉,然后2048要改
    这是修改后的网络
    这是修改之前的网络
    这是去掉以后的网络
    这里好像不该去掉两层
    所以我就把-2,改为-1
    这是最后的池化层被加回来了

    再次运行的时候,就暂时没有什么问题了~

    我狮虎说,batch_size是10太小,改成200试试,于是我再次ii:

    但是我要改的时候,貌似人家已经训练好了
    这里也要加上.cuda() 因为运行的是时候,出现这样的错误了

    接着昨天的来做咯~

    同上,在data[0],data[1]后面加上.cuda() 再次出现这样的问题 原来出错的原因是这里,不应该是resnet,而应该是model 好啦~resnet部分到这里就结束了~结果还不错~接下来看看vgg16的表现如何~ 显卡还没有占满,那就再把batch_size调大一点,我改成了200 由于我刚才没有重启内核,所以就这个显卡占用很满啊
    GPU的占用率,为0了 噫,准确率已经是个成熟的准确率了,这么高了

    所以,改变dataset,分一下训练集和测试集:

    注意,dataset的type要有默认参数:不然就要放在前面,有默认参数的放在最后。

    原因是我该写成dataset_type = False,既然前面的叫了,那么这个也要叫,要不然就不开心。
    没想到是这小心眼子的pytorch

            不知不觉就来到了第三天,我们今天上课老师说讲的时候,要包含以下几个方面。(1)数据如何处理;(2)特征如何提取;(3)实验注意事项;(4)实验结果分析。那么我会按照这几方面来准备PPT。

           下午去看排球队打了一会排球,我果然笨夫夫哒,还真不是这块儿料,Duang了几个球,怎么也Duang不过去。不过看大家把手臂都打红了,打肿了,大家也是很拼的。不过增强体质嘛,挺好的。

             还有一件事,今天我狮虎给我看这个。

    你看,好几天之前,我看到这个数据集的时候,就说这就是吴恩达,可是我的这个评判标准呀,说不   是,噫,你看看,我就觉得,我这人脸识别,是不是很厉害了,通过看吴恩达现在的照片,就能认出来这个20年前的照片~
    好啦~开始正式学习啦~

    昨天运行以后,结果如下:

    训练集的准确率,竟然比测试集的还要小,猜测是len的问题~
    len的长度没问题 原来是这里没有写,这样的话,label和数据就不匹配了,这样就不对
    改了以后,果然都对了,哈哈哈,真的是都对了啊,怎么这么棒!

    我决定,用opencv直接读取电脑摄像头,拍摄人脸,进行识别,看是否正确~

    但是,这个过程,不太容易,至少对于现在的我来说,不容易啊。

    我还是决定,加油写一下!!! 我狮虎让我写一下详细的流程,然后逐句翻译就好

    狮虎提示:

    (1)hwc-->chw,用numpy的transpose,变成1chw

    (2)无法打开笔记本摄像头了,因为我的代码现在是在服务器上面跑啊。

    过程就是这么坎坎坷坷,但是我最近每天都有进展~不怕慢,就怕站。这里是将hwc-->chw 然后变成一个tensor 变为nchw

    我已经彻底蒙了……

    到底啥是啥的啥?????? 问:输入是什么?答:batch_size张图片。问:输入是什么格式的?答:png格式。问:输入是什么形状的?答:nchw。 但是现在的输入还是hwc,所以用view变成(n,c,h,w) np.reshape torch.view torch.view 这也是错的 我已经傻了,我决定,肥家~ 所以我用PIL将RGB图变为灰度图以后,又接着用OpenCV的cv2.resize,出来的图像的颜色是很奇怪的,那么就说明了问题在于,这两者的顺序不同。

    相关文章

      网友评论

          本文标题:后台运行jupyter notebook

          本文链接:https://www.haomeiwen.com/subject/hnbvxqtx.html