zoukankan      html  css  js  c++  java
  • 【转】[caffe]深度学习之图像分类模型AlexNet解读

     

    [caffe]深度学习之图像分类模型AlexNet解读

    原文地址:http://blog.csdn.net/sunbaigui/article/details/39938097
     
    本文章已收录于: 
     分类:

    在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军。要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet,这是CNN在图像分类上的经典模型(DL火起来之后)。

    在DL开源实现caffe的model样例中,它也给出了alexnet的复现,具体网络配置文件如下https://github.com/BVLC/caffe/blob/master/models/bvlc_reference_caffenet/train_val.prototxt

    接下来本文将一步步对该网络配置结构中各个层进行详细的解读(训练阶段):

    1. conv1阶段DFD(data flow diagram):

    2. conv2阶段DFD(data flow diagram):

    3. conv3阶段DFD(data flow diagram):

    4. conv4阶段DFD(data flow diagram):

    5. conv5阶段DFD(data flow diagram):

    6. fc6阶段DFD(data flow diagram):

    7. fc7阶段DFD(data flow diagram):

    8. fc8阶段DFD(data flow diagram):

    各种layer的operation更多解释可以参考http://caffe.berkeleyvision.org/tutorial/layers.html

    从计算该模型的数据流过程中,该模型参数大概5kw+。

    caffe的输出中也有包含这块的内容日志,详情如下:

    [cpp] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. I0721 10:38:15.326920  4692 net.cpp:125] Top shape: 256 3 227 227 (39574272)  
    2. I0721 10:38:15.326971  4692 net.cpp:125] Top shape: 256 1 1 1 (256)  
    3. I0721 10:38:15.326982  4692 net.cpp:156] data does not need backward computation.  
    4. I0721 10:38:15.327003  4692 net.cpp:74] Creating Layer conv1  
    5. I0721 10:38:15.327011  4692 net.cpp:84] conv1 <- data  
    6. I0721 10:38:15.327033  4692 net.cpp:110] conv1 -> conv1  
    7. I0721 10:38:16.721956  4692 net.cpp:125] Top shape: 256 96 55 55 (74342400)  
    8. I0721 10:38:16.722030  4692 net.cpp:151] conv1 needs backward computation.  
    9. I0721 10:38:16.722059  4692 net.cpp:74] Creating Layer relu1  
    10. I0721 10:38:16.722070  4692 net.cpp:84] relu1 <- conv1  
    11. I0721 10:38:16.722082  4692 net.cpp:98] relu1 -> conv1 (in-place)  
    12. I0721 10:38:16.722096  4692 net.cpp:125] Top shape: 256 96 55 55 (74342400)  
    13. I0721 10:38:16.722105  4692 net.cpp:151] relu1 needs backward computation.  
    14. I0721 10:38:16.722116  4692 net.cpp:74] Creating Layer pool1  
    15. I0721 10:38:16.722125  4692 net.cpp:84] pool1 <- conv1  
    16. I0721 10:38:16.722133  4692 net.cpp:110] pool1 -> pool1  
    17. I0721 10:38:16.722167  4692 net.cpp:125] Top shape: 256 96 27 27 (17915904)  
    18. I0721 10:38:16.722187  4692 net.cpp:151] pool1 needs backward computation.  
    19. I0721 10:38:16.722205  4692 net.cpp:74] Creating Layer norm1  
    20. I0721 10:38:16.722221  4692 net.cpp:84] norm1 <- pool1  
    21. I0721 10:38:16.722234  4692 net.cpp:110] norm1 -> norm1  
    22. I0721 10:38:16.722251  4692 net.cpp:125] Top shape: 256 96 27 27 (17915904)  
    23. I0721 10:38:16.722260  4692 net.cpp:151] norm1 needs backward computation.  
    24. I0721 10:38:16.722272  4692 net.cpp:74] Creating Layer conv2  
    25. I0721 10:38:16.722280  4692 net.cpp:84] conv2 <- norm1  
    26. I0721 10:38:16.722290  4692 net.cpp:110] conv2 -> conv2  
    27. I0721 10:38:16.725225  4692 net.cpp:125] Top shape: 256 256 27 27 (47775744)  
    28. I0721 10:38:16.725242  4692 net.cpp:151] conv2 needs backward computation.  
    29. I0721 10:38:16.725253  4692 net.cpp:74] Creating Layer relu2  
    30. I0721 10:38:16.725261  4692 net.cpp:84] relu2 <- conv2  
    31. I0721 10:38:16.725270  4692 net.cpp:98] relu2 -> conv2 (in-place)  
    32. I0721 10:38:16.725280  4692 net.cpp:125] Top shape: 256 256 27 27 (47775744)  
    33. I0721 10:38:16.725288  4692 net.cpp:151] relu2 needs backward computation.  
    34. I0721 10:38:16.725298  4692 net.cpp:74] Creating Layer pool2  
    35. I0721 10:38:16.725307  4692 net.cpp:84] pool2 <- conv2  
    36. I0721 10:38:16.725317  4692 net.cpp:110] pool2 -> pool2  
    37. I0721 10:38:16.725329  4692 net.cpp:125] Top shape: 256 256 13 13 (11075584)  
    38. I0721 10:38:16.725338  4692 net.cpp:151] pool2 needs backward computation.  
    39. I0721 10:38:16.725358  4692 net.cpp:74] Creating Layer norm2  
    40. I0721 10:38:16.725368  4692 net.cpp:84] norm2 <- pool2  
    41. I0721 10:38:16.725378  4692 net.cpp:110] norm2 -> norm2  
    42. I0721 10:38:16.725389  4692 net.cpp:125] Top shape: 256 256 13 13 (11075584)  
    43. I0721 10:38:16.725399  4692 net.cpp:151] norm2 needs backward computation.  
    44. I0721 10:38:16.725409  4692 net.cpp:74] Creating Layer conv3  
    45. I0721 10:38:16.725419  4692 net.cpp:84] conv3 <- norm2  
    46. I0721 10:38:16.725427  4692 net.cpp:110] conv3 -> conv3  
    47. I0721 10:38:16.735193  4692 net.cpp:125] Top shape: 256 384 13 13 (16613376)  
    48. I0721 10:38:16.735213  4692 net.cpp:151] conv3 needs backward computation.  
    49. I0721 10:38:16.735224  4692 net.cpp:74] Creating Layer relu3  
    50. I0721 10:38:16.735234  4692 net.cpp:84] relu3 <- conv3  
    51. I0721 10:38:16.735242  4692 net.cpp:98] relu3 -> conv3 (in-place)  
    52. I0721 10:38:16.735250  4692 net.cpp:125] Top shape: 256 384 13 13 (16613376)  
    53. I0721 10:38:16.735258  4692 net.cpp:151] relu3 needs backward computation.  
    54. I0721 10:38:16.735302  4692 net.cpp:74] Creating Layer conv4  
    55. I0721 10:38:16.735312  4692 net.cpp:84] conv4 <- conv3  
    56. I0721 10:38:16.735321  4692 net.cpp:110] conv4 -> conv4  
    57. I0721 10:38:16.743952  4692 net.cpp:125] Top shape: 256 384 13 13 (16613376)  
    58. I0721 10:38:16.743988  4692 net.cpp:151] conv4 needs backward computation.  
    59. I0721 10:38:16.744000  4692 net.cpp:74] Creating Layer relu4  
    60. I0721 10:38:16.744010  4692 net.cpp:84] relu4 <- conv4  
    61. I0721 10:38:16.744020  4692 net.cpp:98] relu4 -> conv4 (in-place)  
    62. I0721 10:38:16.744030  4692 net.cpp:125] Top shape: 256 384 13 13 (16613376)  
    63. I0721 10:38:16.744038  4692 net.cpp:151] relu4 needs backward computation.  
    64. I0721 10:38:16.744050  4692 net.cpp:74] Creating Layer conv5  
    65. I0721 10:38:16.744057  4692 net.cpp:84] conv5 <- conv4  
    66. I0721 10:38:16.744067  4692 net.cpp:110] conv5 -> conv5  
    67. I0721 10:38:16.748935  4692 net.cpp:125] Top shape: 256 256 13 13 (11075584)  
    68. I0721 10:38:16.748955  4692 net.cpp:151] conv5 needs backward computation.  
    69. I0721 10:38:16.748965  4692 net.cpp:74] Creating Layer relu5  
    70. I0721 10:38:16.748975  4692 net.cpp:84] relu5 <- conv5  
    71. I0721 10:38:16.748983  4692 net.cpp:98] relu5 -> conv5 (in-place)  
    72. I0721 10:38:16.748998  4692 net.cpp:125] Top shape: 256 256 13 13 (11075584)  
    73. I0721 10:38:16.749011  4692 net.cpp:151] relu5 needs backward computation.  
    74. I0721 10:38:16.749022  4692 net.cpp:74] Creating Layer pool5  
    75. I0721 10:38:16.749030  4692 net.cpp:84] pool5 <- conv5  
    76. I0721 10:38:16.749039  4692 net.cpp:110] pool5 -> pool5  
    77. I0721 10:38:16.749050  4692 net.cpp:125] Top shape: 256 256 6 6 (2359296)  
    78. I0721 10:38:16.749058  4692 net.cpp:151] pool5 needs backward computation.  
    79. I0721 10:38:16.749074  4692 net.cpp:74] Creating Layer fc6  
    80. I0721 10:38:16.749083  4692 net.cpp:84] fc6 <- pool5  
    81. I0721 10:38:16.749091  4692 net.cpp:110] fc6 -> fc6  
    82. I0721 10:38:17.160079  4692 net.cpp:125] Top shape: 256 4096 1 1 (1048576)  
    83. I0721 10:38:17.160148  4692 net.cpp:151] fc6 needs backward computation.  
    84. I0721 10:38:17.160166  4692 net.cpp:74] Creating Layer relu6  
    85. I0721 10:38:17.160177  4692 net.cpp:84] relu6 <- fc6  
    86. I0721 10:38:17.160190  4692 net.cpp:98] relu6 -> fc6 (in-place)  
    87. I0721 10:38:17.160202  4692 net.cpp:125] Top shape: 256 4096 1 1 (1048576)  
    88. I0721 10:38:17.160212  4692 net.cpp:151] relu6 needs backward computation.  
    89. I0721 10:38:17.160222  4692 net.cpp:74] Creating Layer drop6  
    90. I0721 10:38:17.160230  4692 net.cpp:84] drop6 <- fc6  
    91. I0721 10:38:17.160238  4692 net.cpp:98] drop6 -> fc6 (in-place)  
    92. I0721 10:38:17.160258  4692 net.cpp:125] Top shape: 256 4096 1 1 (1048576)  
    93. I0721 10:38:17.160265  4692 net.cpp:151] drop6 needs backward computation.  
    94. I0721 10:38:17.160277  4692 net.cpp:74] Creating Layer fc7  
    95. I0721 10:38:17.160286  4692 net.cpp:84] fc7 <- fc6  
    96. I0721 10:38:17.160295  4692 net.cpp:110] fc7 -> fc7  
    97. I0721 10:38:17.342094  4692 net.cpp:125] Top shape: 256 4096 1 1 (1048576)  
    98. I0721 10:38:17.342157  4692 net.cpp:151] fc7 needs backward computation.  
    99. I0721 10:38:17.342175  4692 net.cpp:74] Creating Layer relu7  
    100. I0721 10:38:17.342185  4692 net.cpp:84] relu7 <- fc7  
    101. I0721 10:38:17.342198  4692 net.cpp:98] relu7 -> fc7 (in-place)  
    102. I0721 10:38:17.342208  4692 net.cpp:125] Top shape: 256 4096 1 1 (1048576)  
    103. I0721 10:38:17.342217  4692 net.cpp:151] relu7 needs backward computation.  
    104. I0721 10:38:17.342228  4692 net.cpp:74] Creating Layer drop7  
    105. I0721 10:38:17.342236  4692 net.cpp:84] drop7 <- fc7  
    106. I0721 10:38:17.342245  4692 net.cpp:98] drop7 -> fc7 (in-place)  
    107. I0721 10:38:17.342254  4692 net.cpp:125] Top shape: 256 4096 1 1 (1048576)  
    108. I0721 10:38:17.342262  4692 net.cpp:151] drop7 needs backward computation.  
    109. I0721 10:38:17.342274  4692 net.cpp:74] Creating Layer fc8  
    110. I0721 10:38:17.342283  4692 net.cpp:84] fc8 <- fc7  
    111. I0721 10:38:17.342291  4692 net.cpp:110] fc8 -> fc8  
    112. I0721 10:38:17.343199  4692 net.cpp:125] Top shape: 256 22 1 1 (5632)  
    113. I0721 10:38:17.343214  4692 net.cpp:151] fc8 needs backward computation.  
    114. I0721 10:38:17.343231  4692 net.cpp:74] Creating Layer loss  
    115. I0721 10:38:17.343240  4692 net.cpp:84] loss <- fc8  
    116. I0721 10:38:17.343250  4692 net.cpp:84] loss <- label  
    117. I0721 10:38:17.343264  4692 net.cpp:151] loss needs backward computation.  
    118. I0721 10:38:17.343305  4692 net.cpp:173] Collecting Learning Rate and Weight Decay.  
    119. I0721 10:38:17.343327  4692 net.cpp:166] Network initialization done.  
    120. I0721 10:38:17.343335  4692 net.cpp:167] Memory required for Data 1073760256  
  • 相关阅读:
    zoj 3279 线段树 OR 树状数组
    fzu 1962 树状数组 OR 线段树
    hdu 5057 块状链表
    hdu3487 Play with Chain
    bzoj 1588营业额统计(HNOI 2002)
    poj2823 Sliding Window
    poj2828 Buy Tickets
    poj2395 Out of Hay
    poj3667 Hotel
    poj1703 Lost Cows
  • 原文地址:https://www.cnblogs.com/Crysaty/p/6245711.html
Copyright © 2011-2022 走看看