bettyeats / AKBNet

AI net for recognising SPN form CT images
0 stars 0 forks source link

resNeXt research #2

Open bettyeats opened 7 years ago

bettyeats commented 7 years ago

is there any layer which caffe isnot support? if there is , how to slover it?

bettyeats commented 7 years ago

resNeXt is realized by Torch. Is there any point we should pay attention to? research Torch. And read sourcecode of resNeXt.

bettyeats commented 7 years ago

Write python script to generate prototxt.

bettyeats commented 7 years ago

Resnext的test prototxt准备好,查文档,确认参数都可以用 搞明白各个参数是什么意思 想一下它的网络构造是否合理,再对照论文看实现和理论是否相符 这些东西不好量化,就看你的理解和细心程度

bettyeats commented 7 years ago

做resnext的3D实验。组建一个只有一个stage的resnext,编写数据清洗和train的python类。输入646464的2channel的数据(或者是1channel),考虑输出什么数据。

bettyeats commented 7 years ago

要解决的问题:

  1. resNeXt开始部分的作用
  2. 输出什么样的数据
  3. 不同网络结构的差异
  4. 不同参数的差异
bettyeats commented 7 years ago
  1. resNeXt的输入应该是认为有结节的原始数据切块。resNeXt输出的应该是个二分类,分别代表概率较高的真结节分类,和概率较低的真结节分类(假阳性)。
bettyeats commented 7 years ago
  1. 为什么resnext一来就是一个77的卷积。我看了得出:resnext是从resnet进化来的;resnet是从plain network进化来的;plain network是从vgg19进化来的。 vgg19是两个3*3卷积+一个pool+两个3*3卷积。在resnet的论文里,把 两个3*3卷积+一个pool+两个3*3卷积 这样一个结构简化为了一个7*7卷积。 两个3*3卷积等效为一个5*5卷积。两个5*5卷积等效为一个7*7卷积。 再说vgg的结构。vgg的所有卷积都是3*3卷积。padding是1,stride是1,这样保证卷积后图像的大小不变,把几个filter数量一样的几个conv-relu合成一组,最后再用pooling把图像大小减半,图像大小减半之后一般就会增加filter的数量。最后接几个全连接层,最后一层是softmax。 vgg使用3\3卷积的原因是:1.小卷积参数少;2.多个等效大卷积的小卷积引入了更多的非线性
bettyeats commented 7 years ago
  1. resnet和resnext 我仔细比较了一下,除了组卷积,只有一个地方有区别,就是每个unit中的卷积层的参数设置。 resnext没有bias 参数,即bias_term = false resnet有,且设置的是param { lr_mult:2 decay_mult:0}
bettyeats commented 7 years ago
  1. 关于pooling,caffe有三种,Stochastic pooling,average pooling和max pooling。max pooling和average pooling的区别在于减弱的误差不同。一般特征提取的误差有两种:一种是邻域大小受限导致的估计值方差偏大;一种是卷积层参数误差造成估计均值的偏移。average pooling能减小第一种误差,更多的保留图像的背景信息;max pooling能减小第二种误差,更多的保留图像的纹理信息。 Stochastic pooling介于两者之间。
bettyeats commented 7 years ago

把3D版的最小化ResNeXt跑起来。 包括:

  1. 数据准备
  2. train.py代码
  3. solver.prototxt
  4. resnext.prototxt
bettyeats commented 7 years ago
  1. 根据论文设置的初始值: net: "./train.prototxt" snapshot_prefix: "./snapshot/" base_lr: 0.1 momentum: 0.9 weight_decay: 0.0005 lr_policy: "step" stepsize: gamma: display: 1 snapshot: 500

batchsize:128 论文提到300个epoch,对于50k的训练集和10k的测试集,分别在150和225个周期收敛。

bettyeats commented 7 years ago
  1. 网上有人复现resnet使用的solver.prototxt base_lr: 0.1 momentum: 0.9 weight_decay: 0.0001 average_loss: 100 lr_policy: "multistep" stepvalue: 40000 stepvalue: 80000 gamma: 0.1 display: 100 max_iter: 100000 # 100000 iteration is 200 epochs snapshot: 500 snapshot_prefix: "trained_model/cifar" solver_mode: GPU

http://www.cnblogs.com/qixiangyujj/p/5986272.html

bettyeats commented 7 years ago

4. input: "data" input_shape { dim: 4 dim: 1 dim: 64 dim: 64 dim: 64 }

input: "label" input_shape { dim: 4 dim: 1 dim: 64 dim: 64 dim: 64 }