美文网首页
类不可知计数——模型复现(上篇)

类不可知计数——模型复现(上篇)

作者: PolarBearWYY | 来源:发表于2019-01-02 21:23 被阅读64次
2019年的第一个工作日

1.画出模型

2.写出来


输出:小图是一个H/8xW/8x512的特征图; 大图是H/8xW/8x512的特征图 原来是在这里,省略了一步啊,小图输出的是一个特征图,被maxpool成特征向量(这里省略了这一步了)

输入图片大小是256*256

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

先来看一下resnet50:

其实文章只取了ResNet50的conv3之前的部分 区分数组的元素:看缩进,比如前面画五彩线的四个元素就是这个数组的前四个元素,而整个Sequential是第五个元素 …… 哈哈哈

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

然后,再把它变成一个Sequential:

这个我没学过,我狮虎直接告诉我:

原来刚才我狮虎没有说完呢, list前面要加一个* 好啦~ nn.Ad         tab就能自动补全。至于2d是说,在图片上面卷积的意思,因为图片有wh两个维度

问:那大图和小图,应该分开写两个类吗?

狮虎:不是的,一个类,不过是两个输入。

我:噫,怎么回事?

狮虎:forward里面的x才是输入,前面的init只是定义一下,这个类包含哪几部分。

再来看,vector Broadcasting该如何写:这个是在forward里面写的,因为不是一个层。

是这种的 不是这种的 你看,目前就是这样子的

vector broadcasting:

写法如上,其中,shape[0]就是指的NCHWh中的N

torch.cat?

这就是我最后的Class 实例化一个试试 狮虎让我输入,预测一下试试 生成一个大图:1,3,256,256,和一个小图:1,3,64,64

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

师兄让我top一下,就是看看有哪些进程

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

行了,继续torch.rand吧

狮虎说,这是一个batch的大图(就是一批大图)

为啥是一批呢?

答:因为随机梯度下降这个算法很好,所以cnn在设计的时候就是预测一批啊。

那请问一个batch的大图是啥?

答:是一个tensor,就是一个NCHW的tensor

所以,

这里的四个参数分别对应NCHW 好啦,生成了一个小鸡排

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

来,看看骨头的shape 应该是64*64啊,肯定把骨头也吃了

来看一下哪里不太对啊:

这里的3*3是卷积核大小

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

为了使变换后长度不变,所以P=1

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

结果狮虎说,我怎么开了好多nvidia-smi,残留了很多

而且不能通过

x掉,来关闭

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

这就可以x掉这个了,这是退出了一个

其他两个窗口同理:

原来是我之前开的nvidia-smi都没有退出,所以残留了这么多啊

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

狮虎:你开了几个jupyter啊

我:我好像每次开机,都开一下

狮虎:……

狮虎:不是说,开一次就行了吗

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

8889 8810 kiyomi你要记住:每次打开了nvidia-smi,不用了的话,就exit    ,再关

狮虎:你用killall wuyanyan试试。

没有叫wuyanyan的进程,杀不了

狮虎:killall nvidia-smi。

再把watch全杀了:

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

狮虎:killall python

原来要输入长的

狮虎:现在screen -r notebook

进去以后,重新开启一个jupyter notebook

然后,同时按ctrl+a,再按d

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

然后,就可以exit了:

以后就在浏览器里面用,还不太熟悉,就不要用xshell

jupyter里面的,用完了记得在running里面关了。

发现这里,断开连接了,怎么回事呢?没关系,昨天已经保存过了,重新打开一下网址就好了。 下面开始,推导转置卷积的计算表达式

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

多好的gif图啊,是不是很清晰明了 这个公式是没有问题的~ 这是清晰一些的公式~ 这里要注意哟,i=5(是padding以后的长度)但是i'=3啊,是padding之前的长度哈

验证一下,当P=0时,根据公式求得,

o'=7

但是根据图,求得:

明显o'=3

所以上述公式不对。

一步一步推导:

规则是m-k+1

综上所述:

o'=i+(s-1)(i-1)+2p-k+1

经验证,是对的。 感谢狮虎,好夫夫的~

严谨的狮虎,要在pytorch里面,把我们推导出来的公式,还有博主推导的公式,都试一下。

因为我们要变成64,所以按照两种公式推导一下,看看参数应该是啥:

这就是小图是63*63的原因。 这是我狮虎写的 我先看看转置卷积的各个参数是啥 但是结果不对

狮虎:你一步一步看看,先看cancat:

就是把类中的改成

是对的

再看conv对不对:

是对的

再看convt:

是对的 所以是prediction的问题咯 就是p=1 不对,怎么通道数不对呢,是1不是256啊~ 好吧,原来返回值没改~

好啦~这次就正确了~

狮虎说,我可以下载一下数据集了~

CARPK dataset:

此数据集包含已从Blender Carpark模型渲染的图像。框架包括明亮到黑暗的照明场景以及三种不同的天气条件:晴天,潮湿和有雾。对于每个渲染帧,生成相应的地面实况深度和语义标注并将其添加到数据集中。 大概是这样了

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

但是图片和视频不能打开。 dataset解压了以后,有两个文件夹,上面的文件夹中的图片和视频均不能打开。Dataset里面的图片和视频可以打开。 恭喜你, WYY你下载了错误的数据集 这个才是文献中提到的数据集

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

算了算了,就直接用coco吧,不用他说的这个数据集了,难找夫夫的~

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

好啦,接下来就是等待回复的时间了。 昨天看了,环太平洋,这部电影,好喜欢男主~哈哈哈,最近在挑手机壳,想挑一款机械感很重的手机壳,但是据说影响信号~噫,在犹豫要不要买~

相关文章

网友评论

      本文标题:类不可知计数——模型复现(上篇)

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