-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
776 lines (545 loc) · 51.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<title>Hello 橙子</title>
<meta name="author" content="John Doe">
<meta name="description" content="我就是故意拼错的">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:site_name" content="Hello 橙子"/>
<meta property="og:image" content=""/>
<link href="/favicon.png" rel="icon">
<link rel="stylesheet" href="/css/bootstrap.min.css" media="screen" type="text/css">
<link rel="stylesheet" href="/css/font-awesome.css" media="screen" type="text/css">
<link rel="stylesheet" href="/css/style.css" media="screen" type="text/css">
<link rel="stylesheet" href="/css/responsive.css" media="screen" type="text/css">
<link rel="stylesheet" href="/css/highlight.css" media="screen" type="text/css">
<link rel="stylesheet" href="/css/google-fonts.css" media="screen" type="text/css">
<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<script src="/js/jquery-2.0.3.min.js"></script>
<!-- analytics -->
</head>
<body>
<nav id="main-nav" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<button type="button" class="navbar-header navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Hello 橙子</a>
<div class="collapse navbar-collapse nav-menu">
<ul class="nav navbar-nav">
<li>
<a href="/archives" title="All the articles.">
<i class=""></i>Archives
</a>
</li>
<li>
<a href="/categories" title="All the categories.">
<i class=""></i>Categories
</a>
</li>
<li>
<a href="/tags" title="All the tags.">
<i class=""></i>Tags
</a>
</li>
<li>
<a href="/about" title="About me.">
<i class=""></i>About
</a>
</li>
<li>
<a href="/atom.xml" title="Subscribe me.">
<i class=""></i>RSS
</a>
</li>
</ul>
</div>
</div> <!-- container -->
</nav>
<div class="clearfix"></div>
<div class="container">
<div class="content">
<div class="page-header logo">
<h1>Hello 橙子<span class="blink-fast">∎</span></h1>
</div>
<div class="row page">
<div class="col-md-9">
<div class="slogan">
<i class="fa fa-heart blink-slow"></i>
好好学习,天天向上.
</div>
<div id="top_search"></div>
<div class="mypage">
<!-- title and entry -->
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2019/02/22/react-简单的财务管理系统/" >react/既简单又可以做假账的小账本</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2019-02-22 </div>
</div>
</div>
<div class="entry">
<div class="row">
<h1 id="accounts-app"><a href="#accounts-app" class="headerlink" title="accounts-app"></a>accounts-app</h1><p>simple account app<br>react/一个功能简单的小账本,记录现金的流入流出/可以做假账(随时编辑历史记录)</p>
<p>GitHub源地址:<a href="https://github.com/0rainge/accounts-app" target="_blank" rel="noopener">https://github.com/0rainge/accounts-app</a></p>
<h2 id="0-项目总结"><a href="#0-项目总结" class="headerlink" title="0. 项目总结"></a>0. 项目总结</h2><h3 id="0-1-展示"><a href="#0-1-展示" class="headerlink" title="0-1. 展示"></a>0-1. 展示</h3><p><img src="https://github.com/0rainge/accounts-app/blob/master/imgDoc/demo.png?raw=true" alt="image"></p>
<h3 id="0-2-功能点"><a href="#0-2-功能点" class="headerlink" title="0-2. 功能点"></a>0-2. 功能点</h3><ol>
<li>展示记录(设置表格,展示每条记录)</li>
<li>创建记录(设置表单,输入记录:时间,事项,收支金额)</li>
<li>计算并展示总金额(设置数据展示卡片,计算收入、支出、总金额并展示)</li>
<li>更新/删除记录(在表单中实现数据的更新和删除)</li>
</ol>
</div>
<a type="button" href="/2019/02/22/react-简单的财务管理系统/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2019/01/31/nodeJs-Flag清单/" >NodeJs/Flag清单</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2019-01-31 </div>
</div>
</div>
<div class="entry">
<div class="row">
<h1 id="也可以看成一个ToDoList"><a href="#也可以看成一个ToDoList" class="headerlink" title="也可以看成一个ToDoList"></a>也可以看成一个ToDoList</h1><p>a To-Do-List using jQuery, nodejs, Express, mongoDB</p>
<p>实现一个flag清单,添加或删除flag</p>
<p>前端使用模版引擎EJS,引用jQuery库,后端使用nodejs,采用express框架,数据储存在mongoDB上</p>
<p>GitHub源地址:<a href="https://github.com/0rainge/myToDoList" target="_blank" rel="noopener">https://github.com/0rainge/myToDoList</a></p>
<h2 id="界面展示:"><a href="#界面展示:" class="headerlink" title="界面展示:"></a>界面展示:</h2><p>前端:<br><img src="https://github.com/0rainge/myToDoList/blob/master/img/demo.png?raw=true" alt="image"></p>
<p>后端:<br><img src="https://github.com/0rainge/myToDoList/blob/master/img/db.png?raw=true" alt="image"><br>
</div>
<a type="button" href="/2019/01/31/nodeJs-Flag清单/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2019/01/29/JavaScript-贪吃蛇/" >JavaScript/两只猫咪</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2019-01-29 </div>
</div>
</div>
<div class="entry">
<div class="row">
<h1 id="灵感来源于贪吃蛇retroSnakeGame"><a href="#灵感来源于贪吃蛇retroSnakeGame" class="headerlink" title="灵感来源于贪吃蛇retroSnakeGame"></a>灵感来源于贪吃蛇retroSnakeGame</h1><p>GitHub源地址:<a href="https://github.com/0rainge/retroSnakeGame" target="_blank" rel="noopener">https://github.com/0rainge/retroSnakeGame</a></p>
<h2 id="0-界面展示"><a href="#0-界面展示" class="headerlink" title="0.界面展示"></a>0.界面展示</h2><ul>
<li><h4 id="游戏开始界面"><a href="#游戏开始界面" class="headerlink" title="游戏开始界面"></a>游戏开始界面</h4><img src="https://github.com/0rainge/retroSnakeGame/blob/master/img/docImg/demo1.jpeg?raw=true" alt="image"></li>
<li><h4 id="游戏界面"><a href="#游戏界面" class="headerlink" title="游戏界面"></a>游戏界面</h4><img src="https://github.com/0rainge/retroSnakeGame/blob/master/img/docImg/demo2.jpeg?raw=true" alt="image"></li>
<li><h4 id="游戏结束界面"><a href="#游戏结束界面" class="headerlink" title="游戏结束界面"></a>游戏结束界面</h4><img src="https://github.com/0rainge/retroSnakeGame/blob/master/img/docImg/demo3.png?raw=true" alt="image">
</div>
<a type="button" href="/2019/01/29/JavaScript-贪吃蛇/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2019/01/24/html:css-淘猫网仿站/" >html/css/淘猫网</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2019-01-24 </div>
</div>
</div>
<div class="entry">
<div class="row">
<h1 id="参考淘宝首屏布局"><a href="#参考淘宝首屏布局" class="headerlink" title="参考淘宝首屏布局"></a>参考淘宝首屏布局</h1><p>做网页时的笔记整理,有些意识流。。</p>
<p>GitHub源地址:<a href="https://github.com/0rainge/taobaoHomePageDemo" target="_blank" rel="noopener">https://github.com/0rainge/taobaoHomePageDemo</a></p>
<h2 id="1-demo展示"><a href="#1-demo展示" class="headerlink" title="1. demo展示"></a>1. demo展示</h2><p><img src="https://github.com/0rainge/taobaoHomePageDemo/blob/master/doc_img/demoPage.png?raw=true" alt="image"><br>
</div>
<a type="button" href="/2019/01/24/html:css-淘猫网仿站/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2018/06/07/fission二次测试以及组件日志分析/" >fission二次测试以及组件日志分析</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2018-06-07 </div>
</div>
</div>
<div class="entry">
<div class="row">
<p>对fission进行测试分析组件日志:</p>
<h3 id="进行测试如下:"><a href="#进行测试如下:" class="headerlink" title="进行测试如下:"></a>进行测试如下:</h3><ol>
<li>创建语言环境镜像、给函数创建路由route trigger、上传函数、测试函数、请求函数、查看函数日志</li>
<li>编译多个文件组成的源码函数:对源码进行打包上传,根据压缩包创建函数、创建路由、通过fission进行解释或编译链接、查看bulid日志</li>
<li>编译artifacts(已打包函数),创建函数、创建路由、测试函数、查看全部函数</li>
<li>创建语言环境镜像、创建builder、查看环境</li>
<li>自动扩容(需要未安装工具hey)</li>
<li>创建trigger:包括http trigger,time trigger,message queue trigger</li>
<li>传源码包:通过fission创建由多个文件组成的函数压缩包,创建package,查看package信息,通过package创建函数</li>
<li>创建部署包:通过fission创建由一个文件组成的函数压缩包,创建package,查看package信息,通过package创建函数</li>
<li>测试函数对k8s中secret和ConfigMaps的访问(demo中的secret路径出现问题,还没找到对的路径) </li>
<li>fission的workflow测试</li>
</ol>
<h3 id="组件分析如下:"><a href="#组件分析如下:" class="headerlink" title="组件分析如下:"></a>组件分析如下:</h3><h4 id="builder:"><a href="#builder:" class="headerlink" title="builder:"></a>builder:</h4><ul>
<li>作用:编译链接上传的源码package</li>
<li>日志包括:记录创建builder service、builder deployment、builder pod、build程序包(注意给build.dh加权限)、上传部署包、更新部署包、build失败报错信息</li>
</ul>
<h4 id="controller:"><a href="#controller:" class="headerlink" title="controller:"></a>controller:</h4><ul>
<li>作用:每次http请求函数的信息</li>
<li>日志包括:服务器状态,端口,返回http请求的head信息,每次向fission请求时http信息(包括请求错误url的proxy error)如<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">127.0.0.1 - - [07/Jun/2018:01:50:33 +0000] "GET /v2/packages/demo-src-pkg-zip-8lwt?namespace=default HTTP/1.1" 404 9</span><br><span class="line">以及(应该是)每次请求的函数地址和传入参数的地址如</span><br><span class="line">github.com/fission/fission/controller.(*API).respondWithError(0xc420082ae0, 0x7f5c883e4e60, 0xc4201a4960, 0x178ea60, 0xc420510b40)</span><br><span class="line"> /Volumes/MacintoshHD/Dropbox/Dropbox/goWorkspace/src/github.com/fission/fission/controller/api.go:98 +0x29</span><br></pre></td></tr></table></figure>
</li>
</ul>
<h4 id="executor:"><a href="#executor:" class="headerlink" title="executor:"></a>executor:</h4><ul>
<li>作用:创建函数</li>
<li>日志包括:检查是缓冲中跑起来的函数,没有找到的话创建一个,为函数分配环境,设置一个数据结构记录函数信息(如函数名,GenerateName:命名空间;SelfLink,Generation;创建时间戳,删除时间戳,存活时间(DeletionGracePeriodSeconds),标签,实例化url),从pool中得到这个函数,选择pod,通过pod ip实例化pod,从pool中找到可以实例化的pod,对函数和pod进行映射,对pod加上标签,选择pod,调用fetcher 拷贝函数到指定url上,实例化pod,用环境镜像实例化pod,为pod加上ip,创建对应语言的pool,拉取fetcher镜像等。</li>
</ul>
<h4 id="kubewatcher:"><a href="#kubewatcher:" class="headerlink" title="kubewatcher:"></a>kubewatcher:</h4><p>没有查到日志</p>
<h4 id="router:"><a href="#router:" class="headerlink" title="router:"></a>router:</h4><ul>
<li>作用:对http请求进行转发</li>
<li>日志包括:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">2018/06/07 05:47:12 Calling getServiceForFunction for function: hello</span><br><span class="line">2018/06/07 05:47:30 Tapped 1 services in batch</span><br><span class="line">2018/06/07 05:47:30 Tapped 1 services in batch</span><br><span class="line">2018/06/07 05:48:00 Tapped 1 services in batch</span><br><span class="line">2018/06/07 05:48:00 Tapped 1 services in batch</span><br><span class="line">2018/06/07 05:48:15 Tapped 1 services in batch</span><br><span class="line">2018/06/07 05:48:15 Tapped 1 services in batch</span><br></pre></td></tr></table></figure>
</li>
</ul>
<h4 id="storagesvc:"><a href="#storagesvc:" class="headerlink" title="storagesvc:"></a>storagesvc:</h4><ul>
<li>作用:储存服务</li>
<li>日志包括:<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">time="2018-06-06T07:24:53Z" level=info msg="Storage service started"</span><br><span class="line">time="2018-06-06T07:24:53Z" level=info msg="listening to archiveChannel to prune archives"</span><br><span class="line">time="2018-06-06T08:24:53Z" level=info msg="getting orphan archives"</span><br><span class="line">time="2018-06-06T09:24:53Z" level=info msg="getting orphan archives"</span><br><span class="line">time="2018-06-06T09:32:41Z" level=info msg="Handling upload for /packages/demo-src-pkg-zip-fbza-o3s5sk-icbzii.zip"</span><br><span class="line">172.16.76.86 - - [06/Jun/2018:09:32:41 +0000] "POST /v1/archive HTTP/1.1" 200 72</span><br><span class="line">172.16.76.115 - - [06/Jun/2018:09:40:01 +0000] "GET /v1/archive?id=%2Ffission%2Ffission-functions%2Fde313c06-247e-44a5-83a6-0d257d224212 HTTP/1.1" 200 103852</span><br><span class="line">time="2018-06-06T10:24:53Z" level=info msg="getting orphan archives"</span><br><span class="line">time="2018-06-07T01:50:32Z" level=info msg="Handling upload for /packages/demo-src-pkg-zip-d20x-rnhpna-i8fmoq.zip"</span><br><span class="line">172.16.76.95 - - [07/Jun/2018:01:50:32 +0000] "POST /v1/archive HTTP/1.1" 200 72</span><br><span class="line">time="2018-06-07T02:24:53Z" level=info msg="getting orphan archives"</span><br></pre></td></tr></table></figure>
</li>
</ul>
<h4 id="timer:"><a href="#timer:" class="headerlink" title="timer:"></a>timer:</h4><ul>
<li>作用:一个基于时间的triggers,定时向请求指定函数。这里是每30s请求一次。</li>
<li>日志包括:<br>2018/06/07 08:17:30 Making HTTP request to <a href="http://router.fission/fission-function/hello" target="_blank" rel="noopener">http://router.fission/fission-function/hello</a><br>主要是记录时间</li>
</ul>
</div>
<a type="button" href="/2018/06/07/fission二次测试以及组件日志分析/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2018/06/01/SqueezeNet介绍/" >SqueezeNet介绍</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2018-06-01 </div>
</div>
</div>
<div class="entry">
<div class="row">
<h3 id="定义:"><a href="#定义:" class="headerlink" title="定义:"></a>定义:</h3><p>压缩神经网络参数——轻量化网络<br>SqueezeNet是一个小型化的网络模型结构,在保证不降低检测精度的同时,用了比AlexNet少50倍的参数。</p>
<p>同时采用了deep compression技术,对squeezenet进行了压缩,将原始AlexNet模型压缩至原来的1/500(模型文件< 0.5MB,原始AlexNet模型约为200MB,同时增大了计算量。</p>
<h3 id="措施:"><a href="#措施:" class="headerlink" title="措施:"></a>措施:</h3><ol>
<li>将一部分3x3的filter(卷集核)替换成1x1的filter;<br>本文替换3x3的卷积kernel为1x1的卷积kernel可以让参数缩小9X。但是为了不影响识别精度,并不是全部替换,而是一部分用3x3,一部分用1x1。</li>
<li>减少输入的channels(3x3卷积核的input feature map数量,输入通道数);<br>如果是conv1-conv2这样的直连,那么实际上是没有办法减少conv2的input feature map数量的。因此把一层conv分解为两层,封装为一个Fire Module。使用squeeze layers来实现。</li>
<li>在整个网络后期才进行下采样,使得卷积层有比较大的activation maps;<br>分辨率越大的特征图(延迟降采样)可以带来更高的分类精度,因为分辨率越大的输入能够提供的信息就越多。将欠采样操作延后,可以给卷积层提供更大的激活图:更大的激活图保留了更多的信息,可以提供更高的分类准确率。</li>
</ol>
<p>其中:措施1、2可降低参数数量。措施3用来大化网络精度。</p>
<h3 id="fire-module:"><a href="#fire-module:" class="headerlink" title="fire module:"></a>fire module:</h3><p>一个类似inception的网络单元结构。SqueezeNet的网络结构由若干个 fire module 组成。<br>将原来一层conv层变成两层:squeeze卷集层(有1x1卷集核)+expand卷集层(1x1和3x3卷积核)。</p>
<ol>
<li>策略1:squeeze层用1x1的卷集filter。squeeze层借鉴了inception的思想,利用1x1卷积核来降低输入到expand层中3x3卷积核的输入通道数channels。</li>
<li>策略2: 定义squeeze层中1x1卷积核的数量是s1x1,expand层中1x1卷积核的数量是e1x1, 3x3卷积核的数量是e3x3。令s1x1 < e1x1+ e3x3从而保证输入到3x3的输入通道数减小,这样squeeze layer可以限制输入通道数量。<br>激活函数:为了保证1x1卷积核和3x3卷积核具有相同大小的输出,3x3卷积核采用1像素的zero-padding和步长 squeeze层和expand层均采用RELU作为激活函数 。</li>
</ol>
<p>Fire module输入的feature map为H<em>W</em>M的,输出的feature map为H<em>M</em>(e1+e3),可以看到feature map的分辨率是不变的,变的仅是维数,也就是通道数,这一点和VGG的思想一致。<br>首先,H<em>W</em>M的feature map经过Squeeze层,得到S1个feature map,这里的S1均是小于M的,以达到“压缩”的目的。<br>其次,H<em>W</em>S1的特征图输入到Expand层,分别经过1<em>1卷积层和3</em>3卷积层进行卷积,再将结果进行concat,得到Fire module的输出,为 H<em>M</em>(e1+e3)的feature map。<br>fire模块有三个可调参数:S1,e1,e3,分别代表卷积核的个数,同时也表示对应输出feature map的维数,在本文提出的SqueezeNet结构中,e1=e3=4s1</p>
<h3 id="模型:"><a href="#模型:" class="headerlink" title="模型:"></a>模型:</h3><p>SqueezeNet以卷积层(conv1)开始,接着使用8个Fire modules (fire2-9),最后以卷积层(conv10)结束。每个fire module中的filter数量逐渐增加,并且在conv1, fire4, fire8, 和 conv10这几层之后使用步长为2的max-pooling,即将池化层放在相对靠后的位置,这使用了以上的策略(3)。<br>最后是一个conv10,在fire9后采用50%的dropout 由于全连接层的参数数量巨大,因此借鉴NIN的思想,去除了全连接层FC而改用global average pooling。</p>
<h3 id="减少参数的优点:"><a href="#减少参数的优点:" class="headerlink" title="减少参数的优点:"></a>减少参数的优点:</h3><p>1、实现更高效的分布式训练;<br>服务器间的通信是分布式CNN训练的重要限制因素。对于分布式 数据并行 训练方式,通信需求和模型参数数量正相关。小模型对通信需求更低。<br>2、训练出轻量级的模型,减小下载模型到客户端的额外开销 ;<br>比如在自动驾驶中,经常需要更新客户端模型。更小的模型可以减少通信的额外开销,使得更新更加容易。<br>3、在FPGA和嵌入式硬件上的部署实现;</p>
<h3 id="GitHub项目:"><a href="#GitHub项目:" class="headerlink" title="GitHub项目:"></a>GitHub项目:</h3><p>SqueezeNet <a href="https://github.com/DeepScale/SqueezeNet" target="_blank" rel="noopener">https://github.com/DeepScale/SqueezeNet</a> 1.4k star<br>SqueezeNet-Deep-Compression: <a href="https://github.com/songhan/SqueezeNet-Deep-Compression" target="_blank" rel="noopener">https://github.com/songhan/SqueezeNet-Deep-Compression</a> 314 star <a href="https://arxiv.org/abs/1602.07360" target="_blank" rel="noopener">https://arxiv.org/abs/1602.07360</a><br>SqueezeNet-Generator: <a href="https://github.com/songhan/SqueezeNet-Generator" target="_blank" rel="noopener">https://github.com/songhan/SqueezeNet-Generator</a><br>SqueezeNet-DSD-Training: <a href="https://github.com/songhan/SqueezeNet-DSD-Training" target="_blank" rel="noopener">https://github.com/songhan/SqueezeNet-DSD-Training</a><br>SqueezeNet-Residual: <a href="https://github.com/songhan/SqueezeNet-Residual" target="_blank" rel="noopener">https://github.com/songhan/SqueezeNet-Residual</a><br><a href="https://github.com/vonclites/squeezenet" target="_blank" rel="noopener">https://github.com/vonclites/squeezenet</a> 52 star 有原论文 <a href="https://arxiv.org/abs/1602.07360" target="_blank" rel="noopener">https://arxiv.org/abs/1602.07360</a><br><a href="https://github.com/rcmalli/keras-squeezenet" target="_blank" rel="noopener">https://github.com/rcmalli/keras-squeezenet</a> 251 star Keras实现 squeezenet<br><a href="https://github.com/DT42/squeezenet_demo" target="_blank" rel="noopener">https://github.com/DT42/squeezenet_demo</a> 175 star </p>
<h3 id="相关论文:"><a href="#相关论文:" class="headerlink" title="相关论文:"></a>相关论文:</h3><p><a href="https://arxiv.org/pdf/1602.07360v3.pdf" target="_blank" rel="noopener">https://arxiv.org/pdf/1602.07360v3.pdf</a> squeezenet用了比AlexNet少50倍的参数,达到了AlexNet相同的精度<br><a href="https://arxiv.org/pdf/1506.02626v3.pdf" target="_blank" rel="noopener">https://arxiv.org/pdf/1506.02626v3.pdf</a> Learning both Weights and Connections for Efficient Neural Network (NIPS’15)<br><a href="https://arxiv.org/pdf/1510.00149v5.pdf" target="_blank" rel="noopener">https://arxiv.org/pdf/1510.00149v5.pdf</a> 深度压缩,用剪枝来压缩深度神经网络,训练量化和 Huffman 编码<br><a href="https://arxiv.org/pdf/1602.01528v1.pdf" target="_blank" rel="noopener">https://arxiv.org/pdf/1602.01528v1.pdf</a> 压缩神经网络的Efficient Inference Engine</p>
<h3 id="总结:"><a href="#总结:" class="headerlink" title="总结:"></a>总结:</h3><p>squeezenet采用“多层小卷积核”策略,通过增加计算量换来更少的参数,把参数读取的代价转移到计算量上。计算耗时还是要远远小于数据存取耗时的,是“多层小卷积核”策略成功的根源。</p>
<h3 id="其他:"><a href="#其他:" class="headerlink" title="其他:"></a>其他:</h3><p>mobilenet和,squeezenet都是alexnet参数量1/50,mobilenet速度比alexnet快10倍,squeezenet提升3%</p>
</div>
<a type="button" href="/2018/06/01/SqueezeNet介绍/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2018/06/01/SqueezeNet的ARM和树莓派案例/" >SqueezeNet的ARM和树莓派案例</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2018-06-01 </div>
</div>
</div>
<div class="entry">
<div class="row">
<h2 id="ARM"><a href="#ARM" class="headerlink" title="ARM"></a>ARM</h2><ol>
<li>ARM Compute Library案例:</li>
</ol>
<ul>
<li>案例:<br>ARM 计算库(ACL)提供了CNN的基本构造块,比如激活、卷积、全连接和局部连接、规范化、池化和softmax功能. 文章通过这些组件构建SqueezeNet ,并与通过tensorflow构建的SqueezeNet进行比较,</li>
<li>产品化程度:<br>理论性较强,产品化程度不高。重点介绍了如何通过ACL构建SqueezeNet架构的CNN推理机 ,并与通过Zuluko上tensorflow构建的SqueezeNet进行比较。<br>-SqueezeNet 起到的作用:<br>作为用于测试ACL性能的神经网络模型。</li>
<li>链接:<br><a href="https://arxiv.org/pdf/1704.03751.pdf" target="_blank" rel="noopener">https://arxiv.org/pdf/1704.03751.pdf</a> 和<br><a href="https://community.arm.com/iot/embedded/b/embedded-blog/posts/perceptin-enabled-embedded-deep-learning-inference-engine-with-the-arm-compute-library" target="_blank" rel="noopener">https://community.arm.com/iot/embedded/b/embedded-blog/posts/perceptin-enabled-embedded-deep-learning-inference-engine-with-the-arm-compute-library</a></li>
<li>代码:<br>ACL中样例SqueezeNet的C++代码 <a href="https://github.com/ARM-software/ComputeLibrary/blob/master/examples/graph_squeezenet_v1_1.cpp" target="_blank" rel="noopener">https://github.com/ARM-software/ComputeLibrary/blob/master/examples/graph_squeezenet_v1_1.cpp</a></li>
</ul>
<h2 id="Raspberry-Pi-3"><a href="#Raspberry-Pi-3" class="headerlink" title="Raspberry Pi 3"></a>Raspberry Pi 3</h2><ol>
<li>用opencv在树莓派上部署SqueezeNet</li>
</ol>
<ul>
<li>案例:用OpenCV3.3.0在Raspberry Pi 3上部署 pre-trained SqueezeNet Neural Network</li>
<li>产品化程度:<br>比较高,可以输出结果。</li>
</ul>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">(1)在图像上绘出最高的预测分类标签和相应的概率</span><br><span class="line">(2)将前五个结果和概率打印到终端</span><br><span class="line">(3)将图像显示在屏幕上</span><br><span class="line"></span><br><span class="line">[INFO] loading model...</span><br><span class="line">[INFO] classification took 0.4432 seconds</span><br><span class="line">[INFO] 1. label: drake, probability: 0.25705</span><br><span class="line">[INFO] 2. label: goose, probability: 0.18581</span><br><span class="line">[INFO] 3. label: black stork, probability: 0.10414</span><br><span class="line">[INFO] 4. label: hornbill, probability: 0.074497</span><br><span class="line">[INFO] 5. label: quail, probability: 0.051127</span><br></pre></td></tr></table></figure>
<ul>
<li>SqueezeNet 起到的作用:<br>用于图像识别,在案例中起主要作用。</li>
<li>代码:<a href="https://github.com/appinho/Raspberry_Pi_3_Image_Classification/tree/master/SqueezeNet" target="_blank" rel="noopener">https://github.com/appinho/Raspberry_Pi_3_Image_Classification/tree/master/SqueezeNet</a></li>
</ul>
<ol start="2">
<li>使用Raspberry Pi和预先训练的深度学习神经网络对输入图像进行分类</li>
</ol>
<ul>
<li>案例:使用Raspberry Pi 部署预先训练的深度学习网络.不通过树莓派训练模型,只做用来部署预先训练好的模型</li>
<li>产品化程度:<br>比较高,可以输出具体结果,SqueezeNet比GoogLeNet速度更快,但准确率没它高</li>
<li>SqueezeNet 起到的作用:进行图片分类</li>
<li>链接:<a href="https://www.pyimagesearch.com/2017/10/02/deep-learning-on-the-raspberry-pi-with-opencv/" target="_blank" rel="noopener">https://www.pyimagesearch.com/2017/10/02/deep-learning-on-the-raspberry-pi-with-opencv/</a></li>
<li>代码:<a href="https://www.getdrip.com/forms/353154548/submissions" target="_blank" rel="noopener">https://www.getdrip.com/forms/353154548/submissions</a></li>
</ul>
<ol start="3">
<li>在Raspberry Pi 中运行Movidius Neural Compute Stick</li>
</ol>
<ul>
<li>案例: 通过Raspberry Pi 、Raspbian jessie(2017-07-05)、cheep USB camera和SqueezeNet实现。</li>
<li>产品化程度:高,已实现,有demo视频可以进行实时识别。</li>
<li>SqueezeNet 起到的作用:用于图像分类</li>
<li>链接:<a href="https://www.youtube.com/watch?v=41E5hni786Y" target="_blank" rel="noopener">https://www.youtube.com/watch?v=41E5hni786Y</a> 和 <a href="https://www.youtube.com/watch?v=f39NFuZAj6s" target="_blank" rel="noopener">https://www.youtube.com/watch?v=f39NFuZAj6s</a></li>
</ul>
<ol start="4">
<li>使用Raspberry Pi 3进行目标检测</li>
</ol>
<ul>
<li>案例:使用树莓进行对象检测</li>
<li>产品化程度:不高,理论分析</li>
<li>SqueezeNet 起到的作用:建议使用的神经网络之一</li>
<li>链接:<a href="https://medium.com/dt42/run-object-detection-using-deep-learning-on-raspberry-pi-3-1-55027eac26c3" target="_blank" rel="noopener">https://medium.com/dt42/run-object-detection-using-deep-learning-on-raspberry-pi-3-1-55027eac26c3</a></li>
</ul>
<h2 id="其他"><a href="#其他" class="headerlink" title="其他"></a>其他</h2><ol>
<li>通过SqueezeNet进行猫狗识别</li>
</ol>
<ul>
<li>案例:猫狗识别</li>
<li>产品化程度:一般。</li>
<li>SqueezeNet 起到的作用:图像识别</li>
<li>代码:<a href="https://github.com/chasingbob/squeezenet-keras" target="_blank" rel="noopener">https://github.com/chasingbob/squeezenet-keras</a></li>
</ul>
<ol start="2">
<li>MXNet在Raspberry Pi上的实时对象检测</li>
</ol>
<ul>
<li>案例:AWS的loT,MXNet和Raspberry Pi</li>
<li>产品化程度:比较高</li>
<li>SqueezeNet 起到的作用:主要是MXNet</li>
<li>链接:<br><a href="https://mxnet.incubator.apache.org/tutorials/embedded/wine_detector.html" target="_blank" rel="noopener">https://mxnet.incubator.apache.org/tutorials/embedded/wine_detector.html</a></li>
</ul>
<ol start="3">
<li>手机上的Squeezing Deep Learning<br>链接:<a href="https://www.slideshare.net/anirudhkoul/squeezing-deep-learning-into-mobile-phones" target="_blank" rel="noopener">https://www.slideshare.net/anirudhkoul/squeezing-deep-learning-into-mobile-phones</a></li>
</ol>
</div>
<a type="button" href="/2018/06/01/SqueezeNet的ARM和树莓派案例/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2018/05/23/交叉编译在树莓派的tensorflowLite /" >交叉编译在树莓派的tensorflow lite</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2018-05-23 </div>
</div>
</div>
<div class="entry">
<div class="row">
<p>系统:ubuntu、树莓派(centos系统)、</p>
<ol>
<li><p>调整树莓派时间(默认好像是去年)<br>用ntpdate同步时间<br><a href="https://jingyan.baidu.com/article/f71d6037815a0d1ab741d167.html" target="_blank" rel="noopener">https://jingyan.baidu.com/article/f71d6037815a0d1ab741d167.html</a></p>
</li>
<li><p>失败的尝试,看了之前的博客<br><a href="https://www.wandianshenme.com/play/build-tensorflow-on-raspberry-pi-step-by-step-guide/" target="_blank" rel="noopener">https://www.wandianshenme.com/play/build-tensorflow-on-raspberry-pi-step-by-step-guide/</a><br><a href="http://www.cnblogs.com/jojodru/p/7744630.html" target="_blank" rel="noopener">http://www.cnblogs.com/jojodru/p/7744630.html</a><br>写的比较复杂,而且都没有成功,可能是现在tensorflow lite 发展的比较快,信息更新的比较快</p>
</li>
<li><p>成功的尝试,官网<br><a href="https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/rpi.md" target="_blank" rel="noopener">https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/rpi.md</a><br>很快就build好了</p>
</li>
</ol>
</div>
<a type="button" href="/2018/05/23/交叉编译在树莓派的tensorflowLite /#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2018/05/20/复现activitynet2016未剪辑视频分类冠军算法模型/" >复现activitynet2016未剪辑视频分类冠军算法模型</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2018-05-20 </div>
</div>
</div>
<div class="entry">
<div class="row">
<p>复现activitynet2016未剪辑视频分类冠军算法模型:</p>
<p>代码链接:<a href="https://github.com/yjxiong/anet2016-cuhk" target="_blank" rel="noopener">https://github.com/yjxiong/anet2016-cuhk</a></p>
<p>系统:ubuntu</p>
<p>装上unzip和cmake</p>
<p>复现activitynet2016未剪辑视频分类冠军算法模型:<a href="https://github.com/yjxiong/anet2016-cuhk" target="_blank" rel="noopener">https://github.com/yjxiong/anet2016-cuhk</a></p>
<p>主要通过脚本安装<a href="https://github.com/yjxiong/anet2016-cuhk/blob/master/build_all.sh" target="_blank" rel="noopener">https://github.com/yjxiong/anet2016-cuhk/blob/master/build_all.sh</a></p>
<p>环境准备如下:</p>
<ol>
<li>安装anaconda</li>
<li>安装caffe</li>
<li>安装tensorflow</li>
<li>安装opencv</li>
</ol>
<p>脚本有一些地方运行不了,整理的之后步骤如下:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">#!/usr/bin/env bash</span><br><span class="line"># TODO: add compilation steps</span><br><span class="line"></span><br><span class="line"># update the submodules: Caffe and Dense Flow</span><br><span class="line">git submodule update --remote</span><br><span class="line"></span><br><span class="line"># install Caffe dependencies</span><br><span class="line">sudo apt-get -qq install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libatlas-base-dev</span><br><span class="line">不对!!!!!!!!!!sudo apt-get -qq install --no-install-recommends libboost1.55-all-dev</span><br><span class="line"> 改成sudo apt-get -qq install --no-install-recommends libboost-all-dev</span><br><span class="line">sudo apt-get -qq install libgflags-dev libgoogle-glog-dev liblmdb-dev</span><br><span class="line"></span><br><span class="line"># install Dense_Flow dependencies</span><br><span class="line">sudo apt-get -qq install libzip-dev</span><br><span class="line"></span><br><span class="line"># install common dependencies: OpenCV</span><br><span class="line"># adpated from OpenCV.sh</span><br><span class="line">version="2.4.13"</span><br><span class="line"></span><br><span class="line">echo "Building OpenCV" $version</span><br><span class="line">mkdir 3rd-party/</span><br><span class="line">cd 3rd-party/</span><br><span class="line"></span><br><span class="line">echo "Installing Dependenices"</span><br><span class="line">不对!!!!!!!!!sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils</span><br><span class="line"></span><br><span class="line">改成sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils</span><br><span class="line"></span><br><span class="line">echo "Downloading OpenCV" $version</span><br><span class="line"></span><br><span class="line">echo "Installing OpenCV" $version</span><br><span class="line">unzip OpenCV-$version.zip</span><br><span class="line">cd opencv-$version</span><br><span class="line">mkdir build</span><br><span class="line">cd build</span><br><span class="line">cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..</span><br><span class="line"></span><br><span class="line">!!!!!!!!!!</span><br><span class="line">在这里Makefile.config加入:</span><br><span class="line">LINKFLAGS := -Wl,-rpath,/root/anaconda3/lib</span><br><span class="line">!!!!!!!!!!</span><br><span class="line">??????????cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D BUILD_TIFF=ON -D WITH_OPENGL=ON..</span><br><span class="line"></span><br><span class="line">cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_TIFF=ON ..</span><br><span class="line"></span><br><span class="line">cp lib/cv2.so ../../../</span><br><span class="line">echo "OpenCV" $version "built"</span><br><span class="line"></span><br><span class="line"># build dense_flow</span><br><span class="line">cd ../../../</span><br><span class="line"></span><br><span class="line">echo "Building Dense Flow"</span><br><span class="line">cd lib/dense_flow</span><br><span class="line">mkdir build</span><br><span class="line">cd build</span><br><span class="line">OpenCV_DIR=../../../3rd-party/opencv-$version/build/ cmake .. -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF</span><br><span class="line">make -j</span><br><span class="line">!!!!!!!!需要下载</span><br><span class="line">echo "Dense Flow built"</span><br><span class="line"></span><br><span class="line">https://github.com/jaejunlee0538/openfabmap/issues/3</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># build caffe</span><br><span class="line">echo "Building Caffe"</span><br><span class="line">cd ../../caffe-action</span><br><span class="line">mkdir build</span><br><span class="line">cd build</span><br><span class="line">OpenCV_DIR=../../../3rd-party/opencv-$version/build/ cmake .. -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF </span><br><span class="line"></span><br><span class="line">!!!!!!!!!!!!!!!改成</span><br><span class="line">OpenCV_DIR=../../../3rd-party/opencv-$version/build/ cmake .. -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF -D BUILD_TIFF=ON</span><br><span class="line">然后如果你装了anaconda包的话,删除anaconda/lib/下面的 libm https://blog.csdn.net/ccemmawatson/article/details/42004105</span><br><span class="line">sudo rm -rf libm*</span><br><span class="line"></span><br><span class="line">make -j32</span><br><span class="line">echo "Caffe Built"</span><br><span class="line">cd ../../../</span><br><span class="line"></span><br><span class="line"># install python packages</span><br><span class="line">pip install -r py_requirements.txt</span><br><span class="line"></span><br><span class="line"># setup for web demo</span><br><span class="line">mkdir tmp</span><br><span class="line"></span><br><span class="line"># copy website files to the folder</span><br><span class="line">wget -O 3rd-party/bootstrap-fileinput.zip https://github.com/kartik-v/bootstrap-fileinput/zipball/master</span><br><span class="line">cd 3rd-party</span><br><span class="line">unzip bootstrap-fileinput.zip</span><br><span class="line">mv kartik-v-bootstrap-* Bootstrap-fileinput</span><br><span class="line"></span><br><span class="line">!!!!!!!!!!!cannot move 'kartik-v-bootstrap-fileinput-61c9523' to 'Bootstrap-fileinput/kartik-v-bootstrap-fileinput-61c9523': Directory not empty</span><br><span class="line"></span><br><span class="line">cp -r Bootstrap-fileinput/js ../static/js</span><br><span class="line">cp Bootstrap-fileinput/css/* ../static/css/</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">export ANET_HOME=/root/anet2016-cuhk</span><br></pre></td></tr></table></figure>
</div>
<a type="button" href="/2018/05/20/复现activitynet2016未剪辑视频分类冠军算法模型/#more" class="btn btn-default more">Read More</a>
</div>
<!-- display as entry -->
<div class="row">
<div class="col-md-8">
<h3 class="title">
<a href="/2018/05/15/CNN_C3D_averagePooling_LSTM_MoE/" >论文阅读笔记之CNN_C3D_averagePooling_LSTM_MoE</a>
</h3>
</div>
<div class="col-md-4">
<div class="date">post @ 2018-05-15 </div>
</div>
</div>
<div class="entry">
<div class="row">
<h4 id="作者"><a href="#作者" class="headerlink" title="作者"></a>作者</h4><p>Feng Mao </p>
<h4 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h4><p>提取CNN和C3D特征作为帧特征,使用average pooling 和 LSTM 将帧特征聚集为视频特征,使用MoE进行分类<br>CNN_C3D_averagePooling_LSTM_MoEcd </p>
<h4 id="特征提取"><a href="#特征提取" class="headerlink" title="特征提取"></a>特征提取</h4><p>CNN:使用数据集ImageNet 21k 训练模型inception-v1 。在分类层POOL5/7X7YS1,选择分类层之前的那一个hidden层作为帧级特征第一部分。<br>C3D:使用PCA降维</p>
<h4 id="特征聚合"><a href="#特征聚合" class="headerlink" title="特征聚合"></a>特征聚合</h4><p>无监督 average pooling<br>有监督 aggregation LSTM</p>
<h4 id="分类"><a href="#分类" class="headerlink" title="分类"></a>分类</h4><p> MoE(Mixture of experts) ,结合不同特征和不同聚合模型:</p>
<ul>
<li>CNN + average pooling </li>
<li>CNN + LSTM </li>
<li>C3D + average pooling</li>
<li>C3D + LSTM </li>
</ul>
<p>需要训练的参数是CNN and C3D 的LSTM参数和 MoE parameters </p>
</div>
<a type="button" href="/2018/05/15/CNN_C3D_averagePooling_LSTM_MoE/#more" class="btn btn-default more">Read More</a>
</div>
</div>
<!-- pagination -->
<div>
<center>
<div class="pagination">
<a type="button" class="btn btn-default disabled"><i class="fa fa-arrow-circle-o-left"></i>Prev</a>
<a href="/" type="button" class="btn btn-default"><i class="fa fa-home"></i>Home</a>
<a href="/page/2/" type="button" class="btn btn-default ">Next<i class="fa fa-arrow-circle-o-right"></i></a>
</div>
</center>
</div>
</div> <!-- col-md-9 -->
<div class="col-md-3">
<div id="sidebar">
<div id="site_search">
<div class="form-group">
<input type="text" id="local-search-input" name="q" results="0" placeholder="Search" class="st-search-input st-default-search-input form-control"/>
</div>
<div id="local-search-result"></div>
</div>
<div class="widget">
<h4>Categories</h4>
<ul class="tag_box inline list-unstyled">
<li><a href="/categories/ActivityNet2017/">ActivityNet2017<span>1</span></a></li>
<li><a href="/categories/FaaS踩坑系列/">FaaS踩坑系列<span>5</span></a></li>
<li><a href="/categories/SqueezeNet/">SqueezeNet<span>2</span></a></li>
<li><a href="/categories/Untrimmed-Video-Classification论文阅读笔记/">Untrimmed_Video_Classification论文阅读笔记<span>2</span></a></li>
<li><a href="/categories/activitynet/">activitynet<span>1</span></a></li>
<li><a href="/categories/git/">git<span>1</span></a></li>
<li><a href="/categories/tensorflow/">tensorflow<span>1</span></a></li>
<li><a href="/categories/缓慢的前端学习-练手项目记录/">缓慢的前端学习-练手项目记录<span>4</span></a></li>
</ul>
</div>
<div class="widget">
<h4>Tag Cloud</h4>
<ul class="tag_box inline list-unstyled">
<li><a href="/tags/视频处理/">视频处理<span>1</span></a></li>
<li><a href="/tags/mongoDB/">mongoDB<span>1</span></a></li>
<li><a href="/tags/神经网络/">神经网络<span>1</span></a></li>
<li><a href="/tags/express/">express<span>1</span></a></li>
<li><a href="/tags/ActivityNet2017论文笔记/">ActivityNet2017论文笔记<span>1</span></a></li>
<li><a href="/tags/MBH/">MBH<span>1</span></a></li>
<li><a href="/tags/opencv/">opencv<span>1</span></a></li>
<li><a href="/tags/JavaScript/">JavaScript<span>3</span></a></li>
<li><a href="/tags/react/">react<span>1</span></a></li>
<li><a href="/tags/SqueezeNet/">SqueezeNet<span>2</span></a></li>
<li><a href="/tags/minikube/">minikube<span>1</span></a></li>
<li><a href="/tags/SVM/">SVM<span>1</span></a></li>
<li><a href="/tags/Kubernetes/">Kubernetes<span>1</span></a></li>
<li><a href="/tags/css/">css<span>1</span></a></li>
<li><a href="/tags/ARM/">ARM<span>1</span></a></li>
<li><a href="/tags/caffee/">caffee<span>1</span></a></li>
<li><a href="/tags/ActivityNet2017/">ActivityNet2017<span>1</span></a></li>
<li><a href="/tags/tensorflow-lite/">tensorflow lite<span>1</span></a></li>
<li><a href="/tags/openwhisk/">openwhisk<span>2</span></a></li>
<li><a href="/tags/activitynet/">activitynet<span>1</span></a></li>
<li><a href="/tags">...<span>38</span></a></li>
</ul>
</div>
<div class="widget">
<h4>Recent Posts</h4>
<ul class="entry list-unstyled">
<li>
<a href="/2019/02/22/react-简单的财务管理系统/" ><i class="fa fa-file-o"></i>react/既简单又可以做假账的小账本</a>
</li>
<li>
<a href="/2019/01/31/nodeJs-Flag清单/" ><i class="fa fa-file-o"></i>NodeJs/Flag清单</a>
</li>
<li>
<a href="/2019/01/29/JavaScript-贪吃蛇/" ><i class="fa fa-file-o"></i>JavaScript/两只猫咪</a>
</li>
<li>
<a href="/2019/01/24/html:css-淘猫网仿站/" ><i class="fa fa-file-o"></i>html/css/淘猫网</a>
</li>
<li>
<a href="/2018/06/07/fission二次测试以及组件日志分析/" ><i class="fa fa-file-o"></i>fission二次测试以及组件日志分析</a>
</li>
</ul>
</div>
<div class="widget">
<h4>Links</h4>
<ul class="blogroll list-unstyled">
<li><i class="fa fa-github"></i><a href="http://www.github.com/0rainge" title="My Github account." target="_blank"]);">My Github</a></li>
</ul>
</div>
</div> <!-- sidebar -->
</div> <!-- col-md-3 -->
</div> <!-- row-fluid -->
</div>
</div>
<div class="container-narrow">
<footer> <p>
© 2019 John Doe
with help from <a href="http://hexo.io/" target="_blank">Hexo</a>,<a href="http://github.com/wzpan/hexo-theme-freemind/">Freemind</a>,<a href="http://getbootstrap.com/" target="_blank">Twitter Bootstrap</a> and <a href="http://getbootstrap.com/" target="_blank">BOOTSTRA.386</a>.
<br> Theme by <a href="http://github.com/wzpan/hexo-theme-freemind/">Freemind.386</a>.
</p>
</footer>
</div> <!-- container-narrow -->
<a id="gotop" href="#">
<span>⬆︎TOP</span>
</a>
<script src="/js/jquery.imagesloaded.min.js"></script>
<script src="/js/gallery.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/main.js"></script>
<script src="/js/search.js"></script>
<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" media="screen" type="text/css">
<script src="/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript">
(function($){
$('.fancybox').fancybox();
})(jQuery);
</script>
</body>
</html>