{"id":293,"date":"2014-08-13T21:07:54","date_gmt":"2014-08-13T12:07:54","guid":{"rendered":"https:\/\/www.dogrow.net\/nnet\/?p=293"},"modified":"2025-04-24T02:38:40","modified_gmt":"2025-04-23T17:38:40","slug":"blog20","status":"publish","type":"post","link":"https:\/\/www.dogrow.net\/nnet\/blog20\/","title":{"rendered":"(20) Caffe\u3067MNIST\u81ea\u52d5\u8a8d\u8b58(\u305d\u306e1)"},"content":{"rendered":"<p><a href=\"https:\/\/www.dogrow.net\/nnet\/?p=280\">(19) Caffe\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/a> \u3067 Caffe\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u305f\u3002<br \/>\n\u4eca\u56de\u306f Caffe \u306b\u4ed8\u5c5e\u3057\u3066\u3044\u308b\u30b5\u30f3\u30d7\u30eb\u3092\u4f7f\u3063\u3066\u5b9f\u969b\u306b Caffe\u3092 GPU\u4e0a\u3067\u52d5\u4f5c\u3055\u305b\u3066\u307f\u308b\u3002<\/p>\n<p>\u306a\u3093\u3068\uff01<br \/>\nCaffe\u306e\u5b9f\u884c\u30b5\u30f3\u30d7\u30eb\u306b\u306f <span class=\"my_fc_deeppinkB\">MNIST\u7528\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u74b0\u5883<\/span> \u304c\u4ed8\u5c5e\u3057\u3066\u3044\u308b\u3002<\/p>\n<p>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u306e\u4f7f\u7528\u624b\u9806\u306f\u3001\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u306b\u8a73\u3057\u304f\u66f8\u304b\u308c\u3066\u3044\u308b\u3002<br \/>\n<a href=\"http:\/\/caffe.berkeleyvision.org\/gathered\/examples\/mnist.html\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/caffe.berkeleyvision.org\/gathered\/examples\/mnist.html<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-294\" src=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/08\/20140813_04.png\" alt=\"20140813_04\" width=\"480\" height=\"215\" srcset=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/08\/20140813_04.png 480w, https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/08\/20140813_04-300x134.png 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<h1 class=\"my_h\">1. MNIST\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/h1>\n<p>\u307e\u305a\u306fMNIST\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3002<br \/>\nCaffe\u3092 GIT\u3067\u53d6\u5f97\uff06\u5c55\u958b\u3057\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092 CAFFE_ROOT \u3068\u3059\u308c\u3070\u3001<br \/>\n$CAFFE_ROOT\/data\/mnist<br \/>\n\u306bMNIST\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304a\u304f\u3002<\/p>\n<p>\u3053\u306e\u4f5c\u696d\u306f <span class=\"my_fc_deeppinkB\">get_mnist.sh<\/span> \u306b\u66f8\u304b\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308c\u3070\u3088\u3044\u3002<\/p>\n<pre>$ cd $CAFFE_ROOT\/data\/mnist\r\n$ .\/get_mnist.sh\r\n<\/pre>\n<p>\u81ea\u5206\u306e\u4f5c\u696d\u74b0\u5883\u306e\u5834\u5408\u3001\u5148\u306b <a href=\"https:\/\/www.dogrow.net\/nnet\/blog1\/\">(1) MNIST\u753b\u50cf\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a> \u3067\u540c\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u6e08\u307f\u306a\u306e\u3067\u3001\u4eca\u56de\u3053\u306e\u4f5c\u696d\u306f\u3044\u3089\u306a\u3044\u3002<\/p>\n<h1 class=\"my_h\">2. \u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u7528\u30c7\u30fc\u30bf\u3092\u4f5c\u6210<\/h1>\n<p>Caffe\u3067\u306f\u3001MNIST\u30c7\u30fc\u30bf\u3092 Caffe\u306e\u5165\u529b\u30c7\u30fc\u30bf\u5f62\u5f0f\u306b\u5909\u63db\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u63d0\u4f9b\u3057\u3066\u304f\u308c\u3066\u3044\u308b\u3002<br \/>\n\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u306f <span class=\"my_fc_deeppinkB\">create_mnist.sh<\/span> \u306b\u66f8\u304b\u308c\u3066\u3044\u308b\u3002<\/p>\n<pre>$ cd $CAFFE_ROOT\/example\/mnist\r\n$ .\/create_mnist.sh\r\n<\/pre>\n<p>\u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3057\u305f\u7d50\u679c\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b66\u7fd2\u30c7\u30fc\u30bf\u3001\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e <span class=\"my_fc_deeppinkB\">LevelDB<\/span> \u304c\u4f5c\u3089\u308c\u305f\u3002<br \/>\nLevelDB\u306f google\u304c\u516c\u958b\u3057\u3066\u3044\u308b <span class=\"my_fc_deeppinkB\">key-value\u5f62\u5f0f\u306e\u6c4e\u7528\u30c7\u30fc\u30bf\u30b9\u30c8\u30a2<\/span>\u30d7\u30ed\u30b0\u30e9\u30e0\u3060\u3002<\/p>\n<pre>$ ls -F | grep \/\r\nmnist-test-leveldb\/\r\nmnist-train-leveldb\/\r\n<\/pre>\n<h1 class=\"my_h\">3. \u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u958b\u59cb<\/h1>\n<p>\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u30da\u30fc\u30b8\u306b\u306f\u3001\u8d85\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u8a18\u8ff0\u65b9\u6cd5\u306e\u8aac\u660e\u304c\u66f8\u304b\u308c\u3066\u3044\u308b\u3002<br \/>\n\u3053\u308c\u3089\u306f\u5f8c\u3067\u719f\u8aad\u3059\u308b\u3068\u3057\u3066\u3001\u307e\u305a\u306f\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u3092\u5b9f\u884c\u3057\u3066\u307f\u305f\u3044\u3002<br \/>\n\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u5b9f\u884c\u306f <span class=\"my_fc_deeppinkB\">train_lenet.sh<\/span> \u306b\u66f8\u304b\u308c\u3066\u3044\u308b\u3002<\/p>\n<pre>$ cd $CAFFE_ROOT\/example\/mnist\r\n$ .\/train_lenet.sh\r\n<\/pre>\n<p>\u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u4e2d\u8eab\u306f\u3053\u308c(\u2193)\u3060\u3051\u3002caffe\u5b9f\u884c\u30d7\u30ed\u30b0\u30e9\u30e0 <span class=\"my_fc_deeppinkB\">caffe<\/span> \u3092\u8d77\u52d5\u3057\u3066\u3044\u308b\u3002<\/p>\n<pre>TOOLS=..\/..\/build\/tools\r\n$TOOLS\/caffe train --solver=lenet_solver.prototxt\r\n<\/pre>\n<h1 class=\"my_h\">4. \u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u5b9f\u884c\u4e2d<\/h1>\n<p>\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u5b9f\u884c\u4e2d\u306f\u30c8\u30ec\u30fc\u30b9\u30ed\u30b0\u304c\u8868\u793a\u3055\u308c\u308b\u3002\u8868\u793a\u5185\u5bb9\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Iteration N, loss<\/td>\n<td>N batch\u306e\u5b66\u7fd2\u30c7\u30fc\u30bf\u306e loss function value<\/td>\n<\/tr>\n<tr>\n<td>Iteration N, lr<\/td>\n<td>N batch\u306e learning rate<\/td>\n<\/tr>\n<tr>\n<td>Test score #0<\/td>\n<td>\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e\u6b63\u89e3\u7387(0.0 ~ 1.0)<\/td>\n<\/tr>\n<tr>\n<td>Test score #1<\/td>\n<td>\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e loss function value<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5b9f\u969b\u306e\u8868\u793a\u5185\u5bb9\u306f\u3053\u3061\u3089(\u2193)<\/p>\n<pre>I0813 20:23:56.937985  4618 solver.cpp:165] Solving LeNet\r\nI0813 20:23:56.937995  4618 solver.cpp:232] Iteration 0, Testing net (#0)\r\nI0813 20:23:58.769482  4618 solver.cpp:270] Test score #0: 0.0427\r\nI0813 20:23:58.769534  4618 solver.cpp:270] Test score #1: 2.30319\r\nI0813 20:23:58.802779  4618 solver.cpp:195] Iteration 0, loss = 2.30285\r\nI0813 20:23:58.802830  4618 solver.cpp:365] Iteration 0, lr = 0.01\r\nI0813 20:24:02.135016  4618 solver.cpp:195] Iteration 100, loss = 0.339029\r\nI0813 20:24:02.135049  4618 solver.cpp:365] Iteration 100, lr = 0.00992565\r\nI0813 20:24:05.467381  4618 solver.cpp:195] Iteration 200, loss = 0.172438\r\nI0813 20:24:05.467414  4618 solver.cpp:365] Iteration 200, lr = 0.00985258\r\nI0813 20:24:08.799804  4618 solver.cpp:195] Iteration 300, loss = 0.197514\r\nI0813 20:24:08.799839  4618 solver.cpp:365] Iteration 300, lr = 0.00978075\r\nI0813 20:24:12.132412  4618 solver.cpp:195] Iteration 400, loss = 0.0895801\r\nI0813 20:24:12.132447  4618 solver.cpp:365] Iteration 400, lr = 0.00971013\r\nI0813 20:24:15.431949  4618 solver.cpp:232] Iteration 500, Testing net (#0)\r\nI0813 20:24:17.205533  4618 solver.cpp:270] Test score #0: 0.9634\r\nI0813 20:24:17.205569  4618 solver.cpp:270] Test score #1: 0.110554\r\n<\/pre>\n<h1 class=\"my_h\">5. \u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u7d42\u4e86<\/h1>\n<p>\u4ed8\u5c5e\u306eMNIST\u30b5\u30f3\u30d7\u30eb\u306e\u7e70\u308a\u8fd4\u3057\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u56de\u6570\u306f 10,000[batch]\u3060\u3063\u305f\u3002<span class=\"my_fc_crimsonB\">\u203b10,000[epoch]\u3067\u306f\u306a\u3044\uff01<\/span><br \/>\n\u3053\u308c\u306f <span class=\"my_fc_deeppinkB\">lenet_solver.prototxt<\/span> \u306e <span class=\"my_fc_deeppinkB\">max_iter: 10000<\/span> \u3067\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u3002<br \/>\n10,000[batch]\u7d42\u4e86\u6642\u306e\u6700\u7d42\u7d50\u679c\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<\/p>\n<p>\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e\u6b63\u89e3\u7387\u306f <span class=\"my_fc_blueBBig\">99.1%<\/span> \u3068\u9ad8\u3044\uff01<\/p>\n<pre>I0813 20:30:05.385545  4618 solver.cpp:287] Snapshotting to lenet_iter_10000\r\nI0813 20:30:05.389729  4618 solver.cpp:294] Snapshotting solver state to lenet_iter_10000.solverstate\r\nI0813 20:30:05.403728  4618 solver.cpp:213] Iteration 10000, loss = 0.00444134\r\nI0813 20:30:05.403760  4618 solver.cpp:232] Iteration 10000, Testing net (#0)\r\nI0813 20:30:07.157430  4618 solver.cpp:270] Test score #0: <span style=\"color: #ff0000;\">0.9911<\/span>\r\nI0813 20:30:07.157462  4618 solver.cpp:270] Test score #1: 0.0283371\r\nI0813 20:30:07.157470  4618 solver.cpp:218] Optimization Done.\r\nI0813 20:30:07.157475  4618 caffe.cpp:102] Optimization Done.\r\n<\/pre>\n<hr \/>\n<p><span class=\"my_fc_crimsonBBig\">Caffe\u3067\u306f\u7e70\u308a\u8fd4\u3057\u6570\u3092batch\u6570\u3067\u6307\u5b9a\u3059\u308b(EPOCH\u6570\u3067\u306f\u6307\u5b9a\u3057\u306a\u3044)<\/span><br \/>\n\u305d\u306e\u7406\u7531\u306f\u3001\u3053\u3061\u3089\u306e\u30da\u30fc\u30b8\u3067Caffe\u958b\u767a\u8005\u306e\u65b9\u304c\u8a00\u53ca\u3055\u308c\u3066\u3044\u308b\u3002<br \/>\n<a href=\"https:\/\/github.com\/BVLC\/caffe\/issues\/59\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/BVLC\/caffe\/issues\/59<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-371\" src=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/08\/20140824_01.png\" alt=\"20140824_01\" width=\"480\" height=\"415\" srcset=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/08\/20140824_01.png 480w, https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/08\/20140824_01-300x259.png 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p>\u4ed8\u5c5e\u306eMNIST\u5b66\u7fd2\u30b5\u30f3\u30d7\u30eb\u306e\u5834\u5408\u3001\u7e70\u308a\u8fd4\u3057\u6570\u306f <span class=\"my_fc_deeppinkB\">lenet_solver.prototxt<\/span> \u306e <span class=\"my_fc_deeppinkB\">max_iter: 10000<\/span>\u3067 <span class=\"my_fc_deeppinkB\">10000[batch]<\/span> \u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u30021\u30d0\u30c3\u30c1\u306e\u753b\u50cf\u30c7\u30fc\u30bf\u679a\u6570\u306f <span class=\"my_fc_deeppinkB\">lenet_train_test.prototxt<\/span> \u306e <span class=\"my_fc_deeppinkB\">batch_size: 64<\/span> \u3067\u3001TRAIN\u7528\u306f <span class=\"my_fc_deeppinkB\">64[images]<\/span> \u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n<p>\u3053\u306e\u3053\u3068\u304b\u3089&#8230;<br \/>\nMNIST\u306e\u5b66\u7fd2\u7528\u30c7\u30fc\u30bf\u304c <span class=\"my_fc_deeppinkB\">50,000\u679a <\/span>\u306a\u306e\u3067\u30011[epoch]\u306f <span class=\"my_fc_deeppinkB\">50,000<\/span> \u00f7 <span class=\"my_fc_deeppinkB\">64<\/span> \u2252 <span class=\"my_fc_deeppinkB\">781[batch] <\/span>\u3068\u306a\u308b\u3002<br \/>\n\u7e70\u308a\u8fd4\u3057\u56de\u6570\u6307\u5b9a\u304c <span class=\"my_fc_deeppinkB\">10,000[batch] <\/span>\u306a\u306e\u3067\u3001<span class=\"my_fc_deeppinkB\">10,000<\/span> \u00f7 <span class=\"my_fc_deeppinkB\">781<\/span> \u2252 <span class=\"my_fc_deeppinkB\">12[epoch]<\/span> \u3068\u306a\u308b\u3002<br \/>\n<span class=\"my_fc_crimsonB\">\u203bmax_iter:10000\u306f\u300110000epochs\u3067\u306f\u306a\u3044\u306e\u3060\u3002<\/span><\/p>\n<hr class=\"my_hr_bottom\">\n","protected":false},"excerpt":{"rendered":"<p>(19) Caffe\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u3067 Caffe\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u305f\u3002 \u4eca\u56de\u306f Caffe \u306b\u4ed8\u5c5e\u3057\u3066\u3044\u308b\u30b5\u30f3\u30d7\u30eb\u3092\u4f7f\u3063\u3066\u5b9f\u969b\u306b Caffe\u3092 GPU\u4e0a\u3067\u52d5\u4f5c\u3055\u305b\u3066\u307f\u308b\u3002 \u306a\u3093\u3068\uff01 Caffe\u306e\u5b9f\u884c\u30b5\u30f3\u30d7\u30eb\u306b\u306f MNI\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.dogrow.net\/nnet\/blog20\/\">\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":[9,8,18],"tags":[],"class_list":["post-293","post","type-post","status-publish","format-standard","hentry","category-caffe","category-cuda","category-mnist"],"views":7202,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/293","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=293"}],"version-history":[{"count":42,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/293\/revisions"}],"predecessor-version":[{"id":755,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/293\/revisions\/755"}],"wp:attachment":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/media?parent=293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/categories?post=293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/tags?post=293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}