{"id":499,"date":"2014-09-15T11:27:19","date_gmt":"2014-09-15T02:27:19","guid":{"rendered":"https:\/\/www.dogrow.net\/nnet\/?p=499"},"modified":"2022-02-15T18:06:57","modified_gmt":"2022-02-15T09:06:57","slug":"blog27","status":"publish","type":"post","link":"https:\/\/www.dogrow.net\/nnet\/blog27\/","title":{"rendered":"(27) cuda-convnet2\u3067\u4e8c\u5024\u5206\u985e\u5668\u306e\u7d50\u679c\u3092\u898b\u308b"},"content":{"rendered":"<p><a href=\"https:\/\/www.dogrow.net\/nnet\/blog26\/\">(26) cuda-convnet2\u3067\u4e8c\u5024\u5206\u985e\u5668\u3092\u4f5c\u3063\u3066\u307f\u308b<\/a> \u306e\u7d9a\u304d&#8230;<br \/>\n<a href=\"https:\/\/www.dogrow.net\/nnet\/blog10\/\">(10) cuda-convnet\u306e\u30ec\u30dd\u30fc\u30c8\u8868\u793a<\/a> \u3068\u540c\u3058\u624b\u9806\u3067\u30ec\u30dd\u30fc\u30c8\u8868\u793a\u3067\u304d\u308b\u3002<\/p>\n<h3 class=\"my_h\">(1) loss curve\u3092\u8868\u793a<\/h3>\n<pre>SAVEDATA=ConvNet__2014-09-15_10.58.02\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-505\" src=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_losscurve.png\" alt=\"20140915_losscurve\" width=\"360\" height=\"306\" srcset=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_losscurve.png 360w, https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_losscurve-300x255.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<h3 class=\"my_h\">(2) error curve\u3092\u8868\u793a<\/h3>\n<pre>SAVEDATA=ConvNet__2014-09-15_10.58.02\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce --cost-idx=1\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-506\" src=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_errorrate.png\" alt=\"20140915_errorrate\" width=\"360\" height=\"306\" srcset=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_errorrate.png 360w, https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_errorrate-300x255.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<h3 class=\"my_h\">(3) accuracy curve\u3092\u8868\u793a<\/h3>\n<pre>SAVEDATA=ConvNet__2014-09-15_10.58.02\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce --cost-idx=2    # unit#1 precision\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce --cost-idx=3    # unit#1 recall\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce --cost-idx=4    # unit#2 precision\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce --cost-idx=5    # unit#2 recall\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce --cost-idx=6    # unit#3 precision\r\npython shownet.py --load-file $SAVEDATA --show-cost=dce --cost-idx=7    # unit#3 recall\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-507\" src=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_acc2.png\" alt=\"20140915_acc2\" width=\"360\" height=\"306\" srcset=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_acc2.png 360w, https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/09\/20140915_acc2-300x255.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<h3 class=\"my_h\">(4) \u5168\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e\u51fa\u529b\u5c64\u51fa\u529b\u5024\u3092\u53d6\u5f97<\/h3>\n<p><span class=\"my_fc_blueBBig\">\u624b\u98061: \u5b66\u7fd2\u3092\u5b9f\u884c\u3059\u308b\u3002<\/span><br \/>\n<a href=\"https:\/\/www.dogrow.net\/nnet\/blog26\/\">(26) cuda-convnet2\u3067\u4e8c\u5024\u5206\u985e\u5668\u3092\u4f5c\u3063\u3066\u307f\u308b<\/a> \u3092\u53c2\u7167\u306e\u3053\u3068\u3002<\/p>\n<p><span class=\"my_fc_blueBBig\">\u624b\u98062: \u5b66\u7fd2\u6e08\u307f\u30c7\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u3066 test-only \u3067 cuda-convnet2\u3092\u5b9f\u884c\u3059\u308b\u3002<\/span><\/p>\n<pre>BASEPATH=\/home\/user\/cuda\/cuda-convnet2\r\nSAVEDATA=$BASEPATH\/save\/ConvNet__2014-09-15_10.58.02\r\nFEATPATH=$BASEPATH\/tmp\r\nTRGLAYER=fcOut\r\nTEST_RANGE=7\r\npython convnet.py <span class=\"my_fc_deeppinkB\">--load-file<\/span> ${SAVEDATA} \\\r\n                  <span class=\"my_fc_deeppinkB\">--test-only 1<\/span> \\\r\n                  <span class=\"my_fc_deeppinkB\">--test-range<\/span> $TEST_RANGE \\\r\n                  <span class=\"my_fc_deeppinkB\">--write-features<\/span> $TRGLAYER \\\r\n                  <span class=\"my_fc_deeppinkB\">--feature-path<\/span> $FEATPATH\r\n<\/pre>\n<p><span class=\"my_fc_blueBBig\">\u624b\u98063: \u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u8eab\u3092\u898b\u308b\u3002<\/span><\/p>\n<pre>$ls\r\nbatches.meta  data_batch_7\r\n<\/pre>\n<p>python\u3067\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3057\u305f\u30c7\u30fc\u30bf\u306a\u306e\u3067\u3001python\u3067\u30c7\u30b7\u30ea\u30a2\u30a4\u30ba\u3057\u3066\u4e2d\u8eab\u3092\u898b\u308b\u3002<\/p>\n<pre>$ python\r\n<\/pre>\n<p><span class=\"my_fc_deeppinkB\">[&#8216;labels&#8217;] <\/span>\u306b\u306f\u6b63\u89e3\u5024\u304c\u3001<span class=\"my_fc_deeppinkB\">[&#8216;data&#8217;] <\/span>\u306b\u306f\u51fa\u529b\u5024\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u3002<br \/>\n\u3069\u3061\u3089\u3082 <span class=\"my_fc_deeppinkB\">10,000\u30c7\u30fc\u30bf<\/span> x <span class=\"my_fc_deeppinkB\">3\u30e6\u30cb\u30c3\u30c8<\/span> = <span class=\"my_fc_deeppinkB\">30,000\u500b<\/span>\u306e\u30c7\u30fc\u30bf\u3092\u6301\u3064\u3002<\/p>\n<pre>&gt;&gt;&gt; import numpy as np\r\n&gt;&gt;&gt; import cPickle as cp\r\n&gt;&gt;&gt;\r\n&gt;&gt;&gt; da = cp.load(open('<span class=\"my_fc_deeppinkB\">data_batch_7<\/span>'))\r\n&gt;&gt;&gt; da.keys()\r\n['<span class=\"my_fc_deeppinkB\">labels<\/span>', '<span class=\"my_fc_deeppinkB\">data<\/span>']\r\n&gt;&gt;&gt; data_raw = da['data']     <span class=\"my_fc_green\"># raw output<\/span>\r\n&gt;&gt;&gt; data_lbl = da['labels']   <span class=\"my_fc_green\"># true label<\/span>\r\n&gt;&gt;&gt; data_raw = np.asarray(data_raw)\r\n&gt;&gt;&gt; data_lbl = np.asarray(data_lbl)\r\n&gt;&gt;&gt; data_raw.shape\r\n(<span class=\"my_fc_deeppinkB\">10000<\/span>, <span class=\"my_fc_deeppinkB\">3<\/span>)\r\n&gt;&gt;&gt; data_lbl.shape\r\n(3, 10000)\r\n&gt;&gt;&gt; data_lbl = data_lbl.T\r\n&gt;&gt;&gt; data_lbl.shape\r\n(<span class=\"my_fc_deeppinkB\">10000<\/span>, <span class=\"my_fc_deeppinkB\">3<\/span>)\r\n<\/pre>\n<p>\u53d6\u5f97\u3057\u305f\u6b63\u89e3\u5024 <span class=\"my_fc_deeppinkB\">data_lbl<\/span> \u3068\u51fa\u529b\u5024 <span class=\"my_fc_deeppinkB\">data_raw<\/span> \u306e\u5148\u982d10\u500b\u3060\u3051\u3092\u53c2\u7167\u3057\u3066\u307f\u308b\u3002<\/p>\n<pre>&gt;&gt;&gt; <span class=\"my_fc_deeppinkB\">data_lbl<\/span>[0:10,:]\r\narray([[ 1.,  0.,  0.],\r\n       [ 0.,  1.,  0.],\r\n       [ 1.,  0.,  0.],\r\n       [ 0.,  1.,  1.],\r\n       [ 0.,  1.,  0.],\r\n       [ 1.,  0.,  0.],\r\n       [ 0.,  1.,  0.],\r\n       [ 1.,  0.,  1.],\r\n       [ 1.,  0.,  0.],\r\n       [ 1.,  0.,  1.]], dtype=float32)\r\n&gt;&gt;&gt; <span class=\"my_fc_deeppinkB\">data_raw<\/span>[0:10,:]\r\narray([[  9.98521745e-01,   1.49850443e-03,   4.11541946e-03],\r\n       [  1.20352823e-02,   9.88052726e-01,   3.22542548e-01],\r\n       [  9.94093001e-01,   5.99678187e-03,   7.45591475e-03],\r\n       [  2.92361937e-02,   9.71927702e-01,   9.64868903e-01],\r\n       [  2.93485690e-02,   9.70762134e-01,   6.91684261e-02],\r\n       [  9.99665618e-01,   3.34766519e-04,   2.66197207e-03],\r\n       [  1.03651799e-01,   8.95208240e-01,   1.80083804e-03],\r\n       [  9.62865233e-01,   3.65868807e-02,   8.87887657e-01],\r\n       [  2.12325543e-01,   8.14015448e-01,   7.86685292e-03],\r\n       [  9.76591468e-01,   2.24058982e-02,   8.57828259e-01]], dtype=float32)\r\n<\/pre>\n<p>\u51fa\u529b\u5024\u3092 <span class=\"my_fc_deeppinkB\">\u95be\u50240.5\u3067 2\u5024\u5316<\/span>\u3057\u305f\u7d50\u679c\u3092 <span class=\"my_fc_deeppinkB\">data_rth <\/span>\u306b\u53d6\u5f97\u3057\u3001\u3053\u308c\u3082\u5148\u982d\u304b\u308910\u500b\u3060\u3051\u3092\u53c2\u7167\u3057\u3066\u307f\u308b\u3002<br \/>\n\u305d\u3053\u305d\u3053\u5b66\u7fd2\u304c\u9032\u3093\u3067\u3044\u308b\u306e\u3067\u4e0a\u8a18\u306e\u6b63\u89e3\u5024 <span class=\"my_fc_deeppinkB\">data_lbl<\/span> \u3068\u307b\u307c\u540c\u3058\u5024\u3060\u3002(1\u500b\u3060\u3051\u9593\u9055\u3044\u3042\u308a)<\/p>\n<pre>&gt;&gt;&gt; data_rth = (data_raw &gt;= 0.5)*1.0\r\n&gt;&gt;&gt; data_rth[0:10,:]\r\narray([[ 1.,  0.,  0.],\r\n       [ 0.,  1.,  0.],\r\n       [ 1.,  0.,  0.],\r\n       [ 0.,  1.,  1.],\r\n       [ 0.,  1.,  0.],\r\n       [ 1.,  0.,  0.],\r\n       [ 0.,  1.,  0.],\r\n       [ 1.,  0.,  1.],\r\n       [ 0.,  1.,  0.],\r\n       [ 1.,  0.,  1.]])\r\n<\/pre>\n<p>\u3053\u3053\u304b\u3089\u4e00\u6c17\u306b\u30c8\u30fc\u30bf\u30eb\u306e\u30a8\u30e9\u30fc\u7387\u3092\u7b97\u51fa\u3057\u3066\u307f\u308b\u3002<br \/>\n\u51fa\u529b\u30e6\u30cb\u30c3\u30c8No.1,2,3\u306e\u9806\u306b\u4e0d\u6b63\u89e3\u6570\u306f <span class=\"my_fc_deeppinkB\">289<\/span>, <span class=\"my_fc_deeppinkB\">293<\/span>, <span class=\"my_fc_deeppinkB\">537\u500b<\/span>\u3001<br \/>\n\u51fa\u529b\u5024\u306e\u7dcf\u6570\u306f 3\u30e6\u30cb\u30c3\u30c8 x 10,000\u30c7\u30fc\u30bf\u3067 <span class=\"my_fc_deeppinkB\">30,000\u500b<\/span>\u3060\u3002<\/p>\n<pre>&gt;&gt;&gt; out1_raw = data_raw[:,0]\r\n&gt;&gt;&gt; out2_raw = data_raw[:,1]\r\n&gt;&gt;&gt; out3_raw = data_raw[:,2]\r\n&gt;&gt;&gt;\r\n&gt;&gt;&gt; out1_lbl = data_lbl[:,0]\r\n&gt;&gt;&gt; out2_lbl = data_lbl[:,1]\r\n&gt;&gt;&gt; out3_lbl = data_lbl[:,2]\r\n&gt;&gt;&gt;\r\n&gt;&gt;&gt; out1_rth = (out1_raw &gt;= 0.5) * 1\r\n&gt;&gt;&gt; out2_rth = (out2_raw &gt;= 0.5) * 1\r\n&gt;&gt;&gt; out3_rth = (out3_raw &gt;= 0.5) * 1\r\n&gt;&gt;&gt;\r\n&gt;&gt;&gt; out1_lbl = (out1_lbl &gt;= 0.5) * 1\r\n&gt;&gt;&gt; out2_lbl = (out2_lbl &gt;= 0.5) * 1\r\n&gt;&gt;&gt; out3_lbl = (out3_lbl &gt;= 0.5) * 1\r\n&gt;&gt;&gt;\r\n&gt;&gt;&gt; out1_diff = np.where(out1_rth != out1_lbl)\r\n&gt;&gt;&gt; out2_diff = np.where(out2_rth != out2_lbl)\r\n&gt;&gt;&gt; out3_diff = np.where(out3_rth != out3_lbl)\r\n&gt;&gt;&gt;\r\n&gt;&gt;&gt; diff1 = len(out1_diff[0])\r\n&gt;&gt;&gt; diff2 = len(out2_diff[0])\r\n&gt;&gt;&gt; diff3 = len(out3_diff[0])\r\n&gt;&gt;&gt; diff1\r\n<span class=\"my_fc_deeppinkB\">289<\/span>\r\n&gt;&gt;&gt; diff2\r\n<span class=\"my_fc_deeppinkB\">293<\/span>\r\n&gt;&gt;&gt; diff3\r\n<span class=\"my_fc_deeppinkB\">537<\/span>\r\n&gt;&gt;&gt;\r\n&gt;&gt;&gt; errorRate = float((diff1 + diff2 + diff3)) \/ (len(out1_lbl) + len(out2_lbl) + len(out3_lbl))\r\n&gt;&gt;&gt; errorRate\r\n<span class=\"my_fc_deeppinkB\">0.0373\r\n<\/span><\/pre>\n<p>\u3053\u3053\u307e\u3067\u306e\u4f5c\u696d\u3067 \u300c\u751f\u51fa\u529b\u5024\u304b\u3089\u8a08\u7b97\u3057\u305f\u30a8\u30e9\u30fc\u7387\u300d\uff1d\u300c\u5b66\u7fd2\u6642\u306b\u8868\u793a\u3055\u308c\u305f\u30a8\u30e9\u30fc\u7387\u300d \u3067\u3042\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u305f\u3002<\/p>\n<pre>======================Test output======================\r\ndce:  (crossent) 0.319596, (err) <span class=\"my_fc_deeppinkB\">0.037300<\/span>, (Godd) 0.965015, 0.978518, (Geven) 0.977137, 0.963053, (Gtri) 0.925373, 0.940106\r\n<\/pre>\n<hr class=\"my_hr_bottom\">\n","protected":false},"excerpt":{"rendered":"<p>(26) cuda-convnet2\u3067\u4e8c\u5024\u5206\u985e\u5668\u3092\u4f5c\u3063\u3066\u307f\u308b \u306e\u7d9a\u304d&#8230; (10) cuda-convnet\u306e\u30ec\u30dd\u30fc\u30c8\u8868\u793a \u3068\u540c\u3058\u624b\u9806\u3067\u30ec\u30dd\u30fc\u30c8\u8868\u793a\u3067\u304d\u308b\u3002 (1) loss curve\u3092\u8868\u793a SAVEDATA\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.dogrow.net\/nnet\/blog27\/\">\u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,10,11],"tags":[],"class_list":["post-499","post","type-post","status-publish","format-standard","hentry","category-cuda","category-cuda-convnet","category-cuda-convnet2"],"views":2868,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/comments?post=499"}],"version-history":[{"count":19,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/499\/revisions"}],"predecessor-version":[{"id":793,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/499\/revisions\/793"}],"wp:attachment":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/media?parent=499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/categories?post=499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/tags?post=499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}