{"id":147,"date":"2014-07-07T23:20:22","date_gmt":"2014-07-07T14:20:22","guid":{"rendered":"https:\/\/www.dogrow.net\/nnet\/?p=147"},"modified":"2025-06-11T22:50:08","modified_gmt":"2025-06-11T13:50:08","slug":"blog11","status":"publish","type":"post","link":"https:\/\/www.dogrow.net\/nnet\/blog11\/","title":{"rendered":"(11) cuda-convnet\u7528MNIST\u30c7\u30fc\u30bf\u3092\u4f5c\u308b(\u305d\u306e1)"},"content":{"rendered":"<p><a href=\"https:\/\/www.dogrow.net\/nnet\/?p=23\">(1) MNIST\u753b\u50cf\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a> \u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fMNIST\u30c7\u30fc\u30bf\u3092\u3001cuda-convnet\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5165\u529b\u53ef\u80fd\u306a\u5f62\u5f0f\u306b\u5909\u63db\u3057\u305f\u3044\u3002Python\u306b\u4e0d\u6163\u308c\u306a\u3053\u3068\u3082\u3042\u308a\u3001\u307e\u305a\u306f\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u5165\u529b\u3057\u305f\u753b\u50cf\u30c7\u30fc\u30bf\u3092\u8868\u793a\u3057\u3001\u6b63\u3057\u304f\u8aad\u3081\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u307f\u308b\u3002<\/p>\n<p>\u4e8b\u524d\u306bPython\u3067\u306e\u753b\u50cf\u8868\u793a\u306b\u5fc5\u8981\u306a\u4ee5\u4e0b\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308b\u3002<br \/>\n\u30fb<a href=\"http:\/\/www.pythonware.com\/products\/pil\/\" target=_blank rel=\"noopener noreferrer\">PIL(Python Imaging Library)<\/a><br \/>\n\u30fb<a href=\"http:\/\/www.imagemagick.org\/\" target=_blank rel=\"noopener noreferrer\">ImageMagick<\/a><\/p>\n<h3 class=\"my_h\">(1) \u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u306fMNIST\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u304c\u7f6e\u3044\u3066\u3042\u308b\u3002<\/h3>\n<pre>\r\n[user@linux]$ ll\r\n-rw-rw-r--. 1 user user  7840016  7\\u6708  7 18:08 2014 t10k-images-idx3-ubyte\r\n-rw-rw-r--. 1 user user    10008  7\\u6708  7 18:08 2014 t10k-labels-idx1-ubyte\r\n-rw-rw-r--. 1 user user 47040016  7\\u6708  7 18:08 2014 train-images-idx3-ubyte\r\n-rw-rw-r--. 1 user user    60008  7\\u6708  7 18:08 2014 train-labels-idx1-ubyte\r\n<\/pre>\n<h3 class=\"my_h\">(2) Python\u3092\u8d77\u52d5\u3059\u308b\u3002<\/h3>\n<pre>\r\n[user@linux]$ python\r\nPython 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) \r\n[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n>>> \r\n<\/pre>\n<h3 class=\"my_h\">(3) \u4f7f\u7528\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3059\u308b\u3002<\/h3>\n<pre>\r\n>>> import Image\r\n>>> import numpy as np\r\n>>> import struct\r\n<\/pre>\n<h3 class=\"my_h\">(4) train\u7528\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u3092\u30ed\u30fc\u30c9\u3059\u308b\u3002<\/h3>\n<pre>\r\n>>> infile = open('.\/train-images-idx3-ubyte','rb')\r\n<\/pre>\n<h3 class=\"my_h\">(5) \u30d8\u30c3\u30c0\u90e8\u306e\u30c7\u30fc\u30bf\u3092\u30ed\u30fc\u30c9\u3059\u308b\u3002<\/h3>\n<p>\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306f <a href=\"https:\/\/www.dogrow.net\/nnet\/?p=23\">(1) MNIST\u753b\u50cf\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a> \u3092\u53c2\u7167\u306e\u3053\u3068\u3002<\/p>\n<pre>\r\n>>> header = infile.read( 4 * 4 )\r\n>>> header_up = struct.unpack('>4i', header)   # > : big endian, 4i: 4 x int(32bit) \r\n>>> numOfPixelsIn1Data = header_up[2] * header_up[3]\r\n>>> print '# of image            : %d' % header_up[1]\r\n# of image            : 60000\r\n>>> print 'image width           : %d' % header_up[2]\r\nimage width           : 28\r\n>>> print 'image height          : %d' % header_up[3]\r\nimage height          : 28\r\n>>> print '# of pixels in a data : %d' % numOfPixelsIn1Data\r\n# of pixels in a data : 784\r\n<\/pre>\n<h3 class=\"my_h\">(6) \u5148\u982d\u304b\u30895\u500b\u306e\u753b\u50cf\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u307f\u3001\u8868\u793a\u3059\u308b\u3002<\/h3>\n<pre>\r\n>>> for i in range(0,5):\r\n...     data = infile.read( numOfPixelsIn1Data )\r\n...     fmt  = '%dB' % numOfPixelsIn1Data\r\n...     data_up = struct.unpack(fmt, data)\r\n...     npData = np.asarray( data_up ).astype('uint8')\r\n...     imData = np.reshape(npData, (28,28),order='C')\r\n...     im = Image.fromarray( imData )\r\n...     im.show()\r\n... \r\n<\/pre>\n<p>train\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u306e\u5148\u982d\u306b\u306f\u3053\u3093\u306a\u624b\u66f8\u304d\u6570\u5b57\u753b\u50cf\u304c\u5165\u3063\u3066\u3044\u308b\u3088\u3046\u3060\u3002<br \/>\n<a href=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/07\/20140707_01.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/07\/20140707_01.png\" alt=\"20140707_01\" width=\"320\" height=\"87\" class=\"alignnone size-full wp-image-149\" srcset=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/07\/20140707_01.png 320w, https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2014\/07\/20140707_01-300x81.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<h3 class=\"my_h\">(7) \u6700\u5f8c\u306f(4)\u3067\u30aa\u30fc\u30d7\u30f3\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30af\u30ed\u30fc\u30ba\u3059\u308b\u3002<\/h3>\n<pre>\r\n>>> infile.close()\r\n<\/pre>\n<p><a href=\"https:\/\/www.dogrow.net\/nnet\/blog12\/\">\u6b21\u56de\u300c(12) cuda-convnet\u7528MNIST\u30c7\u30fc\u30bf\u3092\u4f5c\u308b(\u305d\u306e2)\u300d\u3067\u306f\u3001\u30ed\u30fc\u30c9\u3057\u305fMNIST\u30c7\u30fc\u30bf\u304b\u3089 cuda-convnet\u306e batches.meta\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u307f\u307e\u3059\u3002<\/a><\/p>\n<hr class=\"my_hr_bottom\">\n","protected":false},"excerpt":{"rendered":"<p>(1) MNIST\u753b\u50cf\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9 \u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fMNIST\u30c7\u30fc\u30bf\u3092\u3001cuda-convnet\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5165\u529b\u53ef\u80fd\u306a\u5f62\u5f0f\u306b\u5909\u63db\u3057\u305f\u3044\u3002Python\u306b\u4e0d\u6163\u308c\u306a\u3053\u3068\u3082\u3042\u308a\u3001\u307e\u305a\u306f\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u5165\u529b\u3057\u305f\u753b\u50cf\u30c7\u30fc\u30bf\u3092\u8868\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.dogrow.net\/nnet\/blog11\/\">\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,18,2],"tags":[],"class_list":["post-147","post","type-post","status-publish","format-standard","hentry","category-cuda","category-cuda-convnet","category-mnist","category-2"],"views":3376,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/147","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=147"}],"version-history":[{"count":14,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/147\/revisions"}],"predecessor-version":[{"id":2543,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/147\/revisions\/2543"}],"wp:attachment":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/media?parent=147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/categories?post=147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/tags?post=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}