
1.画出模型


2.写出来



输出:小图是一个H/8xW/8x512的特征图; 大图是H/8xW/8x512的特征图

输入图片大小是256*256
看一下,resnet50的网络结构吧:第一个1x1的卷积把256维channel降到64维,然后在最后通过1x1卷积恢复,整体上用的参数数目:1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632,



先来看一下resnet50:





注意哈,错了啊,这里啊,还是要第一层的啊:

然后,再把它变成一个Sequential:
这个我没学过,我狮虎直接告诉我:




问:那大图和小图,应该分开写两个类吗?
狮虎:不是的,一个类,不过是两个输入。
我:噫,怎么回事?
狮虎:forward里面的x才是输入,前面的init只是定义一下,这个类包含哪几部分。
再来看,vector Broadcasting该如何写:这个是在forward里面写的,因为不是一个层。



vector broadcasting:

torch.cat?











突然师兄说我占了楼下的GPU:


用pip list看看我是否安装了tensorflow吧:

行了,继续torch.rand吧

为啥是一批呢?
答:因为随机梯度下降这个算法很好,所以cnn在设计的时候就是预测一批啊。
那请问一个batch的大图是啥?
答:是一个tensor,就是一个NCHW的tensor
所以,


小鸡排和大鸡排都做好了,可以送进我嘴巴里面了。




来看一下哪里不太对啊:


conv1的padding为1,一般默认padding =0,stride=1


输入下面的语句,来查看目前有什么进程:
ps aux|grep wuyanyan

而且不能通过

要通过这个,输入exit来退出。


其他两个窗口同理:

关了以后,再来看看进程吧:


狮虎:你开了几个jupyter啊
我:我好像每次开机,都开一下
狮虎:……

让我打开网页试试,看看开到几了。



狮虎:你用killall wuyanyan试试。


狮虎:killall nvidia-smi。


再把watch全杀了:


狮虎:把/bin/bash也杀了呢


狮虎:killall python



狮虎:现在screen -r notebook


然后,同时按ctrl+a,再按d
注意,同时按住ctrl a,然后松开,再快速按d

然后,就可以exit了:

以后就在浏览器里面用,还不太熟悉,就不要用xshell
jupyter里面的,用完了记得在running里面关了。




这里,引用一下ITleaks博主的博客:













验证一下,当P=0时,根据公式求得,
o'=7
但是根据图,求得:

所以上述公式不对。
一步一步推导:


综上所述:
o'=i+(s-1)(i-1)+2p-k+1



严谨的狮虎,要在pytorch里面,把我们推导出来的公式,还有博主推导的公式,都试一下。
因为我们要变成64,所以按照两种公式推导一下,看看参数应该是啥:





狮虎:你一步一步看看,先看cancat:
就是把类中的改成



再看conv对不对:



再看convt:








好啦~这次就正确了~



CARPK dataset:



趁着下载数据集的时候,我来说一下,这次下载数据集和上次下载人脸朝向数据集时候的区别吧,当时的我,还什么都不懂,遇到问题也都是依赖狮虎,上次看到的数据集,很方,不知道都是些什么东西,也不知道怎么用。现在开始自己尝试着去看看该怎么做了。毕竟学习是自己的事情,狮虎领进门,修行在个人。感谢我狮虎,授人鱼,也授人予渔。












但是也没有找到去哪里下载。

https://lafi.github.io/LPN/



网友评论