{"id":2537,"date":"2018-10-17T16:42:16","date_gmt":"2018-10-17T07:42:16","guid":{"rendered":"http:\/\/daily.belltail.jp\/?p=2537"},"modified":"2018-10-18T14:43:26","modified_gmt":"2018-10-18T05:43:26","slug":"nn%e3%81%ae%e6%8e%a8%e8%ab%96%e3%81%ae%e7%90%86%e8%ab%96%e8%a8%88%e7%ae%97%e9%87%8f%e3%82%92%e6%8e%a8%e5%ae%9a%e3%81%99%e3%82%8bchainer_computational_cost","status":"publish","type":"post","link":"https:\/\/daily.belltail.jp\/?p=2537","title":{"rendered":"Chainer\u3067\u66f8\u3044\u305f\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u63a8\u5b9a\u3059\u308bchainer_computational_cost"},"content":{"rendered":"<p>\u6d77\u6d0b\u306e\u751f\u7269\u91cf\u306e\u63a8\u5b9a\u3092\u3059\u308b\u3068\u304d\u306b\u306f\u3001\u5b9f\u969b\u306b\u3042\u308b\u7a7a\u9593\u306e\u7a2e\u3054\u3068\u306e\u500b\u4f53\u6570\u30921\u53391\u5339\u6570\u3048\u308b\u308f\u3051\u306b\u306f\u3044\u304d\u307e\u305b\u3093\u3002\u305d\u3053\u3067\u3001\u6c34\u4e2d\u306b\u6b8b\u3063\u305f\u751f\u7269\u306e\u7d30\u80de\u306eDNA\u3059\u306a\u308f\u3061\u74b0\u5883DNA\u306e\u5bc6\u5ea6\u3092\u624b\u304c\u304b\u308a\u306b\u3057\u3066\u63a8\u8a08\u3092\u3059\u308b\u306e\u3060\u305d\u3046\u3067\u3059\uff08[https:\/\/www.jst.go.jp\/pr\/jst-news\/pdf\/2014\/2014_08_p12.pdf:title=\u30d0\u30b1\u30c4\u4e00\u676f\u306e\u6c34\u3067\u6d77\u6d0b\u751f\u7269\u306e\u91cf\u3084\u7a2e\u985e\u3092\u77e5\u308b]\uff09\u3002<\/p>\n<p>Chainer\u3067\u66f8\u3044\u305fNN\u3068\u30c0\u30df\u30fc\u5165\u529b\u304c\u3042\u308b\u3068\u304d\u3001\u305d\u306eNN\u306eforward pass\u306e\u7406\u8ad6\u7684\u306a\u8a08\u7b97\u91cf\u30fb\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u3092\u8a08\u7b97\u3059\u308b[https:\/\/github.com\/belltailjp\/chainer_computational_cost:title=chainer_computational_cost]\u3092\u4f5c\u308a\u307e\u3057\u305f\u3002<br \/>\nChainer\u306eFunction Hook\u3092\u30d9\u30fc\u30b9\u306b\u3057\u3066\u3044\u308b\u305f\u3081\u3001NN\u306e\u5b9a\u7fa9\u30b3\u30fc\u30c9\u306b\u624b\u3092\u5165\u308c\u308b\u5fc5\u8981\u306f\u4e00\u5207\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<p><script src=\"https:\/\/gist.github.com\/belltailjp\/924a6f88c5ccc122a4de964b447308b0.js\"><\/script><\/p>\n<p><!--more--><\/p>\n<p>* \u80cc\u666f<\/p>\n<p>TL;DR \u95c7\u96f2\u306b\u8efd\u3044NN\u3092\u63a2\u3059\u3088\u308a\u5b9a\u91cf\u7684\u3067\u6c17\u8efd\u306b\u4f7f\u3048\u308b\u6307\u6a19\u304c\u3042\u308b\u65b9\u304c\u3044\u3044\u3067\u3059\u3088\u306d\u3068\u3044\u3046\u8a71\u3067\u3059\u3002<\/p>\n<p>\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u6280\u8853\u306e\u5b9f\u7528\u5316\u304c\u9032\u3080\u4e2d\u3067\u3044\u304b\u306b\u7cbe\u5ea6\u3092\u4fdd\u3061\u306a\u304c\u3089\u8efd\u3044\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3092\u63a2\u3059\u304b\u306f\u3068\u3066\u3082\u91cd\u8981\u3067\u3059\u3002\u624b\u52d5\u306b\u305b\u3088\u81ea\u52d5\u306b\u305b\u3088\u3001\u57fa\u672c\u7684\u306b\u306f\u8a2d\u8a08\u2192\u5b66\u7fd2\u2192\u8a08\u6e2c\u3068\u3044\u3046\u8a66\u884c\u932f\u8aa4\u306e\u30b5\u30a4\u30af\u30eb\u3092\u56de\u3059\u306e\u304c\u4e00\u822c\u7684\u3068\u601d\u3044\u307e\u3059\u3002\u5b9f\u969b\u306b\u306f\u3001\u8ab0\u3057\u3082\u304c\u5f53\u7136\u300c\u3053\u3046\u3044\u3046\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306eNN\u306a\u3089\u7406\u8ad6\u7684\u306b\u306f\u500d\u3050\u3089\u3044\u8efd\u3044\u306f\u305a\u3060\u300d\u3068\u3044\u3046\u4eee\u8aac\u3001\u3059\u306a\u308f\u3061\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u982d\u306e\u4e2d\u3067\u76f8\u5bfe\u7684\u306b\u6982\u7b97\u3057\u3066NN\u3092\u8a2d\u8a08\u3057\u3066\u3044\u308b\u3053\u3068\u3067\u3057\u3087\u3046\u3002\u3053\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u304c\u7d76\u5bfe\u7684\u306a\u6570\u5b57\u3068\u3057\u3066\u5229\u7528\u53ef\u80fd\u3067\u3042\u308c\u3070\u3001\u30b5\u30a4\u30af\u30eb\u3092\u56de\u3059\u306e\u304c\u3068\u3066\u3082\u52b9\u7387\u7684\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3082\u3061\u308d\u3093\u7406\u8ad6\u8a08\u7b97\u91cf\u3068\u5b9f\u969b\u306b\u30d7\u30ed\u30bb\u30c3\u30b5\u4e0a\u3067\u8d70\u308b\u8a08\u7b97\u306e\u56de\u6570\u306f\u4e00\u822c\u306b\u306f\u7570\u306a\u308b\u4e0a\u3001\u5358\u4f4d\u7406\u8ad6\u8a08\u7b97\u91cf\u306b\u5bfe\u3059\u308b\u5b9f\u969b\u306e\u901f\u5ea6\u306f\u6f14\u7b97\u306e\u7a2e\u985e\u306b\u3088\u3063\u3066\u3082\u7570\u306a\u308a\u307e\u3059\u3002\u3057\u305f\u304c\u3063\u3066\u6700\u7d42\u7684\u306a\u63a8\u8ad6\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u5e38\u306b\u5b9f\u6a5f\u4e0a\u3067\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u306b\u57fa\u3065\u3044\u3066\u8b70\u8ad6\u3059\u308b\u3079\u304d\u3067\u3059\u3002\u4e00\u65b9\u3067\u5e38\u306b\u6700\u901f\u306e\u30b5\u30a4\u30af\u30eb\u3067\u8a2d\u8a08\u2192\u5b66\u7fd2\u2192\u30c7\u30d7\u30ed\u30a4\u2192\u8a08\u6e2c\u3092\u3059\u308b\u3053\u3068\u304c\u7269\u7406\u7684\u306b\u306f\u56f0\u96e3\u306a\u3053\u3068\u3082\u307e\u307e\u3042\u308b\u305f\u3081\u3001\u679d\u5208\u308a\u7684\u306b\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u306f\u4f9d\u7136\u91cd\u8981\u3067\u3059\u3002\u5c11\u306a\u304f\u3068\u3082\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u6570\u306b\u3088\u3063\u3066NN\u306e\u91cd\u3055\u3092\u8b70\u8ad6\u3059\u308b\u3088\u308a\u306f\u305a\u3063\u3068\u610f\u5473\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u7406\u8ad6\u8a08\u7b97\u91cf\u304c\u308f\u304b\u308b\u3068\u3001\u5b9f\u6a5f\u306e\u30ab\u30bf\u30ed\u30b0\u30b9\u30da\u30c3\u30af\u4e0a\u306e\u6027\u80fd\u3092\u3064\u304b\u3063\u3066\u7406\u8ad6\u4e0a\u306e\u63a8\u8ad6\u901f\u5ea6\u3092\u6982\u7b97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u3092\u5b9f\u6a5f\u4e0a\u3067\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u306e\u7d50\u679c\u3068\u7a81\u304d\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u6027\u80fd\u306e\u5b9f\u52b9\u52b9\u7387\u306e\u6982\u7b97\u3092\u6c42\u3081\u3089\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u5b9f\u88c5\u306e\u6700\u9069\u5316\u3092\u8b70\u8ad6\u3059\u308b\u3068\u304d\u306e\u624b\u304c\u304b\u308a\u3068\u3057\u3066\u975e\u5e38\u306b\u6709\u7528\u3067\u3059\u3002\u95c7\u96f2\u306a\u76ee\u6a19\u5024\u306b\u5411\u304b\u3063\u3066\u5148\u306e\u898b\u3048\u306a\u3044\u6700\u9069\u5316\u3092\u3057\u3066\u3044\u304f\u3088\u308a\u3082\u610f\u5473\u306e\u3042\u308b\u8b70\u8ad6\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>* \u3067\u304d\u308b\u3053\u3068<\/p>\n<p>Layer\u3054\u3068\u306b\u3001\u6b21\u306e\u3088\u3046\u306a\u9805\u76ee\u3092\u96c6\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>&#8211; \u7406\u8ad6\u8a08\u7b97\u91cf(Number of floating point operations (FLOPs((FLOPS(FLoating-point Operation Per Second; \u901f\u5ea6)\u3067\u306f\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002FLoating-point OPerationS\u3067\u3001\u5358\u306bOPS(OPerationS)\u3068\u547c\u3070\u308c\u308b\u3053\u3068\u3082\u3042\u308b\u5358\u4f4d\u3067\u3001\u5358\u7d14\u306b\u6f14\u7b97\u306e\u56de\u6570\u3092\u8868\u3059\u5358\u4f4d\u3067\u3059\u3002\u306a\u3089OPS\u3067\u3044\u3044\u3058\u3083\u3093\u3063\u3066\u8a71\u3067\u3059\u304c\u3001\u6dfb\u5b57\u8a08\u7b97\u306a\u3069\u76f4\u63a5\u51fa\u529b\u306b\u5bc4\u4e0e\u3057\u306a\u3044\u6f14\u7b97\u3092\u9664\u304f\u3053\u3068\u3092\u660e\u793a\u3059\u308b\u610f\u56f3\u3082\u3053\u3081\u3066FLOPs\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\uff08HPC\u306e\u6587\u8108\u3067\u306eFLOPS\u3082\u5165\u529b\u5024\u304b\u3089\u51fa\u529b\u5024\u3092\u8a08\u7b97\u3059\u308b\u672c\u8cea\u7684\u306a\u547d\u4ee4\u306e\u6570\u3060\u3051\u3092\u6570\u3048\u3066\u3044\u3066\u305d\u306e\u4ed6\u306f\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u306e\u3067\uff09\u3002)) ))<br \/>\n&#8211; \u7406\u8ad6\u30e1\u30e2\u30ea\u8aad\u307f\u8fbc\u307f\u91cf(bytes)<br \/>\n&#8211; \u7406\u8ad6\u30e1\u30e2\u30ea\u66f8\u304d\u8fbc\u307f\u91cf(bytes)<\/p>\n<p>\u3053\u308c\u3089\u3092\u3001\u30aa\u30da\u30ec\u30fc\u30bf\u306e\u7a2e\u985e\u3054\u3068\u306b\u96c6\u8a08\u3059\u308b\u3053\u3068\u3001\u307e\u305fNN\u5168\u4f53\u3068\u3057\u3066\u96c6\u8a08\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br \/>\n\u3053\u308c\u3092CSV\u3084markdown\u3001\u30c6\u30ad\u30b9\u30c8\u30c6\u30fc\u30d6\u30eb\u306e\u5f62\u3067\u51fa\u529b\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>* \u57fa\u672c\u7684\u306a\u4ed5\u7d44\u307f<\/p>\n<p>Chainer\u306b\u306fFunctionHook\u3068\u3044\u3046\u4ed5\u7d44\u307f\u304c\u3042\u308a\u3001Function\uff08NN\u306b\u304a\u3051\u308b\u5c64\u3068\u540c\u7fa9\u3068\u601d\u3063\u3066OK\uff09\u304c\u5b9f\u884c\u3055\u308c\u308b\u5ea6\u306b\u8d70\u308b\u51e6\u7406\u3068\u3044\u3046\u306e\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u305d\u306e\u3068\u304d\u306eFunction\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4fdd\u6301\u3059\u308b\u30cf\u30a4\u30d1\u30fc\u30d1\u30e9\u30e1\u30fc\u30bf\uff08Convolution\u306ek\u306a\u3069\uff09\u3001\u5165\u529b\u306eshape\u3092\u4f7f\u3046\u3053\u3068\u3067\u3001\u5c64\u3054\u3068\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u8a08\u7b97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30aa\u30da\u30ec\u30fc\u30bf\u3054\u3068\u306b\u8a08\u7b97\u5f0f\u3092\u7528\u610f\u3057\u3066\u3001hook\u95a2\u6570\u304c\u53d7\u3051\u53d6\u3063\u305fFunction\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u578b\u306b\u3088\u3063\u3066\u9069\u5207\u306a\u8a08\u7b97\u5f0f\u3092\u9078\u3093\u3067\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u6c42\u3081\u3066\u96c6\u8a08\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u306e\u304cchainer_computational_cost\u306e\u672c\u8cea\u7684\u306a\u4ed5\u7d44\u307f\u3067\u3059\u3002<br \/>\n\u8d85\u5358\u7d14\u3067\u3059\u3002<\/p>\n<p>** \u7406\u8ad6\u8a08\u7b97\u91cf\u306e\u5b9a\u7fa9<\/p>\n<p>\u57fa\u672c\u7684\u306b\u306f\u3001\u300c\u6700\u3082\u5358\u7d14\u3067\u30ca\u30a4\u30fc\u30d6\u306a\u5b9f\u88c5\u3092\u3057\u305f\u3068\u304d\u3001\u5165\u529b\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u9069\u7528\u3055\u308c\u308bfloating point operation\u306e\u56de\u6570\u300d\u3092\u7406\u8ad6FLOPs\u3068\u3057\u3066\u3044\u307e\u3059\u3002\u3059\u306a\u308f\u3061\u3001\u6dfb\u5b57\u8a08\u7b97\u306a\u3069\u306e\u3088\u3046\u306a\u3001\u5165\u529b\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u306e\u8a08\u7b97\u3067\u306f\u306a\u3044\u3082\u306e\u306f\u8003\u3048\u3066\u3044\u307e\u305b\u3093\u3002\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u306b\u3064\u3044\u3066\u3082\u3001\u305d\u306e\u5c64\u304c\u672c\u8cea\u7684\u306b\u5fc5\u8981\u3068\u3059\u308b\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\u30fb\u66f8\u304d\u8fbc\u307f\u304c1\u56de\u3060\u3051\u304a\u3053\u308b\u3082\u306e\u3068\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4f8b\u3048\u3070Convolution\u306e\u6700\u9069\u306a\u5b9f\u88c5\u3067\u306fim2col\u306e\u3088\u3046\u306a\u5f62\u3067\u30e1\u30e2\u30ea\u5185\u3067\u5197\u9577\u306a\u8868\u73fe\u306b\u3057\u305f\u4e0a\u3067\u6f14\u7b97\u3092\u3057\u305f\u308a\u3001\u30e1\u30e2\u30ea\u30a2\u30af\u30bb\u30b9\u52b9\u7387\u5411\u4e0a\u306e\u70ba\u306bCHW\u3092HWC\u306b\u5909\u63db\u3057\u305f\u308a\u3059\u308b\u306a\u3069\u306e\u51e6\u7406\u304c\u884c\u308f\u308c\u305f\u308a\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u308c\u3089\u306f\u4e00\u5207\u7121\u8996\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u307e\u305fWinograd\u306a\u3069\u306b\u3088\u308a\u91cd\u305f\u3044\u4e57\u7b97\u3092\u6e1b\u3089\u3057\u52a0\u7b97\u3092\u5897\u3084\u3059\u3053\u3068\u3067\u901f\u5ea6\u3092\u7a3c\u3050\u3053\u3068\u3082\u4e00\u822c\u7684\u3067\u3059\u304c\u3001\u3053\u3053\u3067\u306f\u5168\u3066\u306e\u56db\u5247\u6f14\u7b97\u3092\u540c\u30581FLOP\u3068\u3057\u3066\u30ab\u30a6\u30f3\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u52a0\u3048\u3066\u3001\u5b9f\u969b\u306eNN\u63a8\u8ad6\u6700\u9069\u5316\u306b\u304a\u3044\u3066\u306fLayer fusion\u3068\u3044\u3046\u6700\u9069\u5316\u304c\u884c\u308f\u308c\u307e\u3059\u3002\u5178\u578b\u7684\u306b\u306fConv-BN-ReLU\u306e\u3088\u3046\u306a\u30b9\u30bf\u30c3\u30af\u30921\u3064\u306eCUDA\u30ab\u30fc\u30cd\u30eb\u3067\u884c\u3046\u3053\u3068\u3067\u3001\u7279\u306b\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u3092\u5927\u304d\u304f\u6e1b\u3089\u3059\u52b9\u679c\u304c\u3042\u308a\u307e\u3059\uff08\u30ab\u30fc\u30cd\u30eb\u547c\u3073\u51fa\u3057\u30aa\u30fc\u30d0\u30d8\u30c3\u30c9\u3092\u524a\u6e1b\u3059\u308b\u610f\u56f3\u3082\u3042\u308a\u307e\u3059\uff09\u3002\u7406\u8ad6\u8a08\u7b97\u91cf\u3067\u306f\u305d\u3046\u3044\u3063\u305f\u8981\u7d20\u3082\u7121\u8996\u3055\u308c\u3001\u5168\u3066\u306elayer\u304c\u30c7\u30fc\u30bf\u8aad\u307f\u8fbc\u307f\u2192\u6f14\u7b97\u2192\u30c7\u30fc\u30bf\u66f8\u304d\u8fbc\u307f\u3068\u3059\u308b\u60f3\u5b9a\u3067\u8a08\u7b97\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4eca\u306e\u3068\u3053\u308d\u3001\u30aa\u30da\u30ec\u30fc\u30bf\u3054\u3068\u306b\u305d\u306e\u300c\u6700\u3082\u30ca\u30a4\u30fc\u30d6\u306a\u5b9f\u88c5\u300d\u3068\u3057\u3066\u4f55\u3092\u60f3\u5b9a\u3059\u308b\u304b\u306f\u7d50\u69cb\u3075\u308f\u3063\u3068\u3057\u3066\u3044\u3066\u3001\u308f\u308a\u3068\u96d1\u306a\u3068\u3053\u308d\u3082\u3042\u308a\u307e\u3059\u3002\u305d\u3082\u305d\u3082\u306eFLOPs\u306e\u8a08\u7b97\u5f0f\u3082\u8aa4\u3063\u3066\u3044\u308b\u3068\u3053\u308d\u3082\u304a\u305d\u3089\u304f\u3042\u308b\u306e\u3067\u3001\u3057\u3070\u3089\u304f\u306f\u305d\u306e\u3078\u3093\u306e\u4fee\u6b63\u304c\u5165\u308b\u3053\u3068\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>* \u5c0e\u5165\u3068\u6d3b\u7528\u4f8b<\/p>\n<p>pip\u3067\u5165\u308c\u3089\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n% pip install chainer_computational_cost\r\n<\/pre>\n<p>ResNet50\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u51fa\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u672c\u8cea\u7684\u306b\u306f2\u884c\u8db3\u3059\u3060\u3051\u3067\u3059\u3002<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nimport numpy as np\r\nimport chainer\r\nimport chainer.links as L\r\nimport chainer_computational_cost as c3\r\n\r\nnet = L.ResNet50Layers()\r\ns = (1, 3, 224, 224)\r\nx = np.random.random(s).astype(np.float32)\r\nwith chainer.no_backprop_mode(), chainer.using_config('train', False):\r\n    with c3.ComputationalCostHook(fma_1flop=True) as cch:\r\n        y = net(x)\r\n        cch.show_report(unit='M', mode='md')\r\n<\/pre>\n<p>show_report\u306b\u3088\u3063\u3066\u3001\u5c64\u3054\u3068\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u30ec\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>|*Layer name|*MFLOPs|*MemRead MiB|*MemWrite MiB|*MemR+W MiB|<br \/>\n|Convolution2DFunction-1|118.014|0.61|3.062|3.673|<br \/>\n|FixedBatchNormalization-1|0.803|3.063|3.062|6.125|<br \/>\n|ReLU-1|0.803|3.062|3.062|6.125|<br \/>\n|MaxPooling2D-1|1.606|3.062|0.766|3.828|<br \/>\n|Convolution2DFunction-2|12.845|0.781|0.766|1.547|<br \/>\n|FixedBatchNormalization-2|0.201|0.766|0.766|1.532|<br \/>\n|ReLU-2|0.201|0.766|0.766|1.531|<br \/>\n|Convolution2DFunction-3|115.606|0.906|0.766|1.672|<br \/>\n|FixedBatchNormalization-3|0.201|0.766|0.766|1.532|<br \/>\n|ReLU-3|0.201|0.766|0.766|1.531|<br \/>\n|Convolution2DFunction-4|51.38|0.828|3.062|3.891|<br \/>\n|FixedBatchNormalization-4|0.803|3.064|3.062|6.127|<br \/>\n|Convolution2DFunction-5|51.38|0.828|3.062|3.891|<br \/>\n|FixedBatchNormalization-5|0.803|3.064|3.062|6.127|<br \/>\n|Add-1|0.803|6.125|3.062|9.188|<br \/>\n|ReLU-4|0.803|3.062|3.062|6.125|<br \/>\n|&#8230;|||||<br \/>\n|total|3884.872|256.754|137.254|394.008|<\/p>\n<p>ResNet50\u306b\u753b\u50cf1\u679a\u3092\u304b\u307e\u3059\u3068\u3001\u7406\u8ad6\u7684\u306b\u306f3884MFLOPs\u3001\u3064\u307e\u308a3.88*10^9\u56de\u306e\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u6f14\u7b97\u304c\u5b9f\u884c\u3055\u308c\u308b\u3053\u3068\u3092\u5831\u544a\u3057\u3066\u3044\u307e\u3059\u3002FMA(Fused-Multiply-Add, ax+b\u306e\u5f62\u3067\u8868\u3055\u308c\u308b3\u5165\u529b\u306e\u6f14\u7b97)\u306b\u3064\u3044\u3066\u306f1\u547d\u4ee4\u3068\u3057\u3066\u6271\u3063\u3066\u3044\u307e\u3059\uff08fma_1flop=True\u306b\u3088\u3063\u3066\uff09\u3002\u5b9f\u52b9\u6027\u80fd\u3092\u8b70\u8ad6\u3059\u308b\u306b\u306f\u305d\u306e\u307b\u3046\u304c\u90fd\u5408\u304c\u3044\u3044\u305f\u3081\u3067\u3059\u3002<\/p>\n<p>\u307e\u305f\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u3067\u306f\u5c64\u3054\u3068\u306b\u5165\u529b\u3092\u30e1\u30e2\u30ea\u304b\u3089\u8aad\u307f\u3001\u307e\u305f\u91cd\u307f\u3092\u30e1\u30e2\u30ea\u304b\u3089\u8aad\u307f\u3001\u6f14\u7b97\u3092\u3057\u305f\u4e0a\u3067\u7d50\u679c\u3092\u30e1\u30e2\u30ea\u306b\u66f8\u304d\u51fa\u3059\u306e\u3067\u3001\u6f14\u7b97\u80fd\u529b\u3088\u308a\u30e1\u30e2\u30ea\u5e2f\u57df\u304c\u6027\u80fd\u3092\u5236\u7d04\u3059\u308b\u3053\u3068\u3082\u3088\u304f\u3042\u308a\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u3001\u7406\u8ad6\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u306e\u63a8\u5b9a\u3082\u540c\u3058\u3088\u3046\u306b\u30ec\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002ResNet50\u306e\u5834\u5408\u306f\u30c8\u30fc\u30bf\u30eb\u3067394MB\u306e\u30e1\u30e2\u30ea\u8aad\u307f\u66f8\u304d\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u3053\u308c\u3092\u5143\u306b\u7279\u5b9a\u30c7\u30d0\u30a4\u30b9\u3067\u306e\u7406\u8ad6\u6027\u80fd\uff08\u306e\u4e0a\u9650\uff09\u3092\u6982\u7b97\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<br \/>\n\u4f8b\u3048\u3070[http:\/\/www.hpc.co.jp\/NVIDIA-GeForce-GTX1080Ti_features.html:title=NVIDIA GTX1080Ti]\u3092\u8003\u3048\u3066\u307f\u308b\u3068\u3001CUDA\u30b3\u30a2\u306e\u6f14\u7b97\u80fd\u529b\u306fFP32\u306710.6TFLOPS\u3001\u30e1\u30e2\u30ea\u306e\u8ee2\u9001\u901f\u5ea6\u304c484GB\/s\u3067\u3059\u3002\u6975\u3081\u3066\u5358\u7d14\u306a\u8a08\u7b97\u3067\u3059\u304c\u3001\u7406\u8ad6\u8a08\u7b97\u91cf\u3092\u3053\u306e\u30ab\u30bf\u30ed\u30b0\u30b9\u30da\u30c3\u30af\u3067\u5272\u308b\u3068\u6f14\u7b97\u306b366\u30de\u30a4\u30af\u30ed\u79d2\u30fb\u30e1\u30e2\u30ea\u8ee2\u9001\u306b814\u30de\u30a4\u30af\u30ed\u79d2\u3001\u5408\u8a08\u3059\u308b\u30681.2\u30df\u30ea\u79d2\u3042\u305f\u308a\u304c\u753b\u50cf1\u679a\u306eforward pass\u306b\u304b\u304b\u308b\u6700\u77ed\u6642\u9593\u306b\u306a\u308b\u3060\u308d\u3046\u3068\u6982\u7b97\u3067\u304d\u307e\u3059\u3002<br \/>\n\uff08\u5b9f\u969b\u306f\u30e1\u30e2\u30ea\u8ee2\u9001\u3068\u6f14\u7b97\u304c\u30aa\u30fc\u30d0\u30fc\u30e9\u30c3\u30d7\u3067\u304d\u308b\u3053\u3068\u3001Conv-&gt;BN-&gt;ReLU\u306a\u3069\u306f1\u3064\u306eCUDA\u30ab\u30fc\u30cd\u30eb\u3067\u4e00\u6c17\u306b\u3084\u308b\u306e\u3067\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u304c\u5927\u5e45\u306b\u6e1b\u308b\u3053\u3068\u3001\u306a\u3069\u306e\u8981\u7d20\u304c\u7d61\u3093\u3067\u304d\u307e\u3059\u304c\u3001\u7406\u8ad6\u8a08\u7b97\u91cf\u306b\u57fa\u3065\u304f\u6982\u7b97\u306e\u6027\u80fd\u4e0a\u9650\u3068\u3044\u3046\u3053\u3068\u3067\u7121\u8996\u3057\u3066\u3044\u307e\u3059\uff09<\/p>\n<p>\u3053\u306e\u3088\u3046\u306b\u7406\u8ad6\u8a08\u7b97\u91cf\u304b\u3089\u6c42\u3081\u305f\u6982\u7b97\u6027\u80fd\u304b\u3089\u3001\u5b9f\u52b9\u52b9\u7387\u3092\u8a08\u7b97\u3057\u3066\u307f\u307e\u3059\u3002<br \/>\n[https:\/\/github.com\/chainer\/onnx-chainer:title=ONNX-Chainer]\u3092\u4f7f\u3063\u3066\u3053\u306eChainer\u30e2\u30c7\u30eb\u3092ONNX\u306b\u5410\u304d\u51fa\u3057\u3001[https:\/\/github.com\/onnx\/onnx-tensorrt\/:title=ONNX-TensorRT]\u3092\u4f7f\u3063\u3066NVIDIA\u306e\u63a8\u8ad6\u30a8\u30f3\u30b8\u30f3[https:\/\/developer.nvidia.com\/tensorrt:title=TensorRT]\u3067ResNet50\u3092\u8d70\u3089\u305b\u308b\u3068\u3001FP32\u3067\u5e73\u57472.41957ms\/img\u3068\u3044\u3046\u5b9f\u52b9\u6027\u80fd\u304c\u5f97\u3089\u308c\u307e\u3057\u305f\u3002\u3053\u308c\u306f\u3001\u7406\u8ad6\u8a08\u7b97\u91cf\u304b\u3089\u306e\u6982\u7b97\u306b\u5bfe\u305750%\u307b\u3069\u306e\u52b9\u7387\u304c\u51fa\u3066\u3044\u308b\u3053\u3068\u3092\u8868\u3057\u307e\u3059\u3002<br \/>\n\u7406\u8ad6\u8a08\u7b97\u91cf\u306b\u304a\u3044\u3066\u306f\u3001\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u8a08\u7b97\u306a\u3069\u306e\u3088\u3046\u306a\u672c\u8cea\u7684\u3067\u306f\u306a\u3044\u304c\u5b9f\u969b\u306f\u5fc5\u8981\u3067\u3042\u308b\u6f14\u7b97\u306f\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u3001\u305d\u308c\u3092\u8fbc\u307f\u3067\u3053\u306e50%\u3068\u3044\u3046\u52b9\u7387\u306f\u76f8\u5f53\u306e\u3082\u306e\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u30df\u30cb\u30d0\u30c3\u30c1\u306b\u3082\u5bfe\u5fdc\u3057\u3066\u3044\u3066\u3001\u30c0\u30df\u30fc\u5165\u529b\u3092\u5358\u7d14\u306b\u30d0\u30c3\u30c1\u65b9\u5411\u306b\u91cd\u306d\u308c\u3070OK\u3067\u3059\u3002<br \/>\n\u4e0b\u8a18\u3067\u306f\u3001\u30c0\u30df\u30fc\u5165\u529b\u306b\u3088\u308bforward pass\u3082\u30d0\u30c3\u30c1\u30b5\u30a4\u30ba32\u3068\u306a\u308b\u3068\u91cd\u305f\u3044\u306e\u3067GPU\u3067\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nimport numpy as np\r\nimport chainer\r\nimport chainer.links as L\r\nimport chainer_computational_cost as c3\r\n\r\nnet = L.ResNet50Layers()\r\nnet.to_gpu()\r\ns = (32, 3, 224, 224)\r\nx = cupy.random.random(s).astype(np.float32)\r\nwith chainer.no_backprop_mode(), chainer.using_config('train', False):\r\n    with c3.ComputationalCostHook(fma_1flop=True) as cch:\r\n        y = net(x)\r\n        cch.show_report(unit='G', mode='md')\r\n<\/pre>\n<p>|*Layer name|*GFLOPs|*MemRead GiB|*MemWrite GiB|*MemR+W GiB|<br \/>\n|Convolution2DFunction-1|3.776|0.018|0.096|0.114|<br \/>\n|FixedBatchNormalization-1|0.026|0.096|0.096|0.191|<br \/>\n|ReLU-1|0.026|0.096|0.096|0.191|<br \/>\n|MaxPooling2D-1|0.051|0.096|0.024|0.12|<br \/>\n|Convolution2DFunction-2|0.411|0.024|0.024|0.048|<br \/>\n|FixedBatchNormalization-2|0.006|0.024|0.024|0.048|<br \/>\n|ReLU-2|0.006|0.024|0.024|0.048|<br \/>\n|Convolution2DFunction-3|3.699|0.024|0.024|0.048|<br \/>\n|FixedBatchNormalization-3|0.006|0.024|0.024|0.048|<br \/>\n|ReLU-3|0.006|0.024|0.024|0.048|<br \/>\n|Convolution2DFunction-4|1.644|0.024|0.096|0.12|<br \/>\n|FixedBatchNormalization-4|0.026|0.096|0.096|0.191|<br \/>\n|Convolution2DFunction-5|1.644|0.024|0.096|0.12|<br \/>\n|FixedBatchNormalization-5|0.026|0.096|0.096|0.191|<br \/>\n|Add-1|0.026|0.191|0.096|0.287|<br \/>\n|ReLU-4|0.026|0.096|0.096|0.191|<br \/>\n|&#8230;|||||<br \/>\n|total|124.316|5.072|4.289|9.361|<\/p>\n<p>\u540c\u69d8\u306b124GFLOPs\u3068\u3044\u3046\u7406\u8ad6\u8a08\u7b97\u91cf\u30019.36GB\u3068\u3044\u3046\u7406\u8ad6\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u3092GTX1080Ti\u306e\u30ab\u30bf\u30ed\u30b0\u30b9\u30da\u30c3\u30af\u306b\u3042\u3066\u306f\u3081\u308b\u3068\u3001\u6f14\u7b97\u306b11.7ms\u3001\u30e1\u30e2\u30ea\u8ee2\u9001\u306b19.3ms\u3001\u5408\u308f\u305b\u306631ms\/batch\u3068\u3044\u3046\u306e\u304c\u7406\u8ad6\u4e0a\u306eforward pass\u306e\u6700\u77ed\u6642\u9593\u3068\u3057\u3066\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<p>\u5b9f\u969b\u306e\u30d0\u30c3\u30c1\u30b5\u30a4\u30ba32\u3067\u306e\u63a8\u8ad6\u901f\u5ea6\u306f30.656ms\u3067\u3057\u305f\u3002<br \/>\n\u52b9\u7387\u304c100%\u3092\u8d85\u3048\u3066\u3057\u307e\u3063\u305f\u306e\u306f\u3001\u4e0a\u8ff0\u306e\u3088\u3046\u306b\u6f14\u7b97\u3068\u30e1\u30e2\u30ea\u8ee2\u9001\u306e\u30aa\u30fc\u30d0\u30fc\u30e9\u30c3\u30d7\u3084\u3001Conv-BN-ReLU\u30b9\u30bf\u30c3\u30af\u306e\u7d71\u5408\u306a\u3069\u306b\u3088\u308a\u4e3b\u306b\u30e1\u30e2\u30ea\u8ee2\u9001\u304c\u8efd\u6e1b\u3082\u3057\u304f\u306f\u96a0\u853d\u3055\u308c\u305f\u305f\u3081\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002\u57fa\u672c\u7684\u306b\u306fTensorRT\u306e\u5b9f\u88c5\u306fResNet50\u3067\u4f7f\u308f\u308c\u308b\u30aa\u30da\u30ec\u30fc\u30bf\u306b\u95a2\u3057\u3066\u306f\u3001\u307b\u307c\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u306e\u6027\u80fd\u3092\u5f15\u304d\u51fa\u3057\u304d\u3063\u3066\u3044\u308b\u3068\u8a00\u3048\u305d\u3046\u3067\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001show_summary_report\u306b\u3088\u3063\u3066\u3001\u30aa\u30da\u30ec\u30fc\u30bf\u5358\u4f4d\u3067\u96c6\u8a08\u3057\u305f\u7d50\u679c\u3092\u898b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\ncch.show_summary_report(unit='M', mode='md', columns=c3.SummaryColumns.ALL)\r\n<\/pre>\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u9805\u76ee\u306b\u52a0\u3048\u3066\u3001\u305d\u308c\u305e\u308c\u306e\u30aa\u30da\u30ec\u30fc\u30bf\u304cNN\u5168\u4f53\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u30fb\u7406\u8ad6\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u306e\u4f55%\u3092\u5360\u3081\u3066\u3044\u308b\u304b\u3092\u5831\u544a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>|*Layer type|*# Layers|*MFLOPs|*MemRead MiB|*MemWrite MiB|*MemR+W MiB|*FLOPs (%)|*MemRead (%)|*MemWrite (%)|*MemR+W (%)|<br \/>\n|Convolution2DFunction|53|3855.925|128.138|40.387|168.524|99.255%|49.907%|29.425%|42.772%|<br \/>\n|FixedBatchNormalization|53|10.587|40.589|40.387|80.976|0.273%|15.809%|29.425%|20.552%|<br \/>\n|ReLU|49|9.082|34.645|34.645|69.289|0.234%|13.493%|25.241%|17.586%|<br \/>\n|MaxPooling2D|1|1.606|3.062|0.766|3.828|0.041%|1.193%|0.558%|0.972%|<br \/>\n|Add|16|5.519|42.109|21.055|63.164|0.142%|16.401%|15.34%|16.031%|<br \/>\n|AveragePooling2D|1|0.1|0.383|0.008|0.391|0.003%|0.149%|0.006%|0.099%|<br \/>\n|Reshape|1|0.0|0.0|0.0|0.0|0.0%|0.0%|0.0%|0.0%|<br \/>\n|LinearFunction|1|2.049|7.824|0.004|7.828|0.053%|3.047%|0.003%|1.987%|<br \/>\n|Softmax|1|0.003|0.004|0.004|0.008|0.0%|0.001%|0.003%|0.002%|<br \/>\n|total|176|3884.872|256.754|137.254|394.008|100.0%|100.0%|100.0%|100.0%|<\/p>\n<p>ResNet50\u306e\u5834\u5408\u306f\u3001\u7dcf\u6f14\u7b97\u91cf\u306e99%\u3092\u3001\u7dcf\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u306e43%\u3092Convolution\u304c\u5360\u3081\u3066\u3044\u307e\u3059\u3002\u3057\u305f\u304c\u3063\u3066\u3001Convolution\u306b\u4f55\u304b\u3057\u3089\u306e\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30bf\u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308c\u3070\u5168\u4f53\u306e\u6027\u80fd\u5411\u4e0a\u306b\u5927\u304d\u304f\u5bc4\u4e0e\u3057\u305d\u3046\u3067\u3059\u3002\u3057\u304b\u3057\u4eee\u306b\u5f37\u529b\u306a\u6f14\u7b97\u5668\u306b\u3088\u3063\u3066Conv\u6f14\u7b97\u3060\u3051\u3092\u3069\u308c\u3060\u3051\u901f\u304f\u3067\u304d\u3066\u3082\u3001\u30e1\u30e2\u30ea\u5e2f\u57df\u304c\u8db3\u3092\u5f15\u3063\u5f35\u308b\u305f\u3081\u500d\u4ee5\u4e0a\u306b\u901f\u304f\u306f\u306a\u308a\u307e\u305b\u3093\u3002\u4e00\u65b9\u3067BN\u3068ReLU\u3060\u3051\u3067\u5168\u4f53\u306e\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u306e40%\u8fd1\u304f\u3092\u5360\u3081\u3066\u308b\u306e\u3067\u3001Conv-BN-ReLU\u30921\u3064\u306eCUDA\u30ab\u30fc\u30cd\u30eb\u306b\u30b9\u30bf\u30c3\u30af\u3067\u304d\u308c\u3070\u3053\u306e40%\u5206\uff08\u304b\u3089BN\u306e\u03b2\/\u03b3\u306e\u30ed\u30fc\u30c9\u5206\u3092\u9664\u3044\u305f\u5206\uff09\u3092\u307b\u307c\u307e\u308b\u3063\u3068\u6e1b\u3089\u305b\u305d\u3046\u3067\u3059\u3002<\/p>\n<p>\u3053\u306e\u3088\u3046\u306a\u304b\u306a\u308a\u5177\u4f53\u7684\u306a\u8b70\u8ad6\u304c\u3001\u7406\u8ad6\u8a08\u7b97\u91cf\u304c\u6c42\u307e\u308b\u3068\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n\uff08\u3082\u3061\u308d\u3093\u3001\u7e70\u308a\u8fd4\u3057\u3067\u3059\u304c\u53b3\u5bc6\u306a\u8b70\u8ad6\u306f\u5e38\u306b\u5b9f\u74b0\u5883\u4e0a\u3067\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u6e2c\u5b9a\u306b\u57fa\u3065\u3044\u3066\u884c\u308f\u308c\u308b\u3079\u304d\u3067\u306f\u3042\u308a\u307e\u3059\u3002\uff09<\/p>\n<p>\u6a5f\u80fd\u3068\u3057\u3066\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306a\u3082\u306e\u304c\u3042\u308a\u307e\u3059<br \/>\n&#8211; \u5c64\u3054\u3068\u30fb\u30aa\u30da\u30ec\u30fc\u30bf\u306e\u7a2e\u985e\u3054\u3068\u306e\u30ec\u30dd\u30fc\u30c8\uff08\u4e0a\u8ff0\uff09<br \/>\n&#8212; csv, markdown, \u30c6\u30ad\u30b9\u30c8\u3067\u306e\u30c6\u30fc\u30d6\u30eb\u3067\u51fa\u529b<br \/>\n&#8212; \u88dc\u52a9\u5358\u4f4d(K,M,G,T)\u306e\u6307\u5b9a\u3001\u5c0f\u6570\u70b9\u4ee5\u4e0b\u6841\u6570\u306e\u6307\u5b9a<br \/>\n&#8212; \u5831\u544a\u3059\u308b\u9805\u76ee\u306e\u6307\u5b9a\uff08\u5168\u4f53\u306b\u5360\u3081\u308b\u5272\u5408%\u3001\u5c64\u306e\u30d1\u30e9\u30e1\u30fc\u30bfetc\uff09<br \/>\n&#8211; \u6a19\u6e96\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u7a2e\u985e\u306e\u30aa\u30da\u30ec\u30fc\u30bf\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u7b97\u51fa\u30eb\u30fc\u30eb\u306e\u5916\u633f<br \/>\n&#8211; \u5c64\u3054\u3068\u306e\u7406\u8ad6\u8a08\u7b97\u91cf\u30ec\u30dd\u30fc\u30c8\u306e\u30c7\u30fc\u30bf\u3078\u306e\u76f4\u63a5\u30a2\u30af\u30bb\u30b9<br \/>\n&#8211; \u5c64\u3054\u3068\u306b\u3001\u30d1\u30e9\u30e1\u30fc\u30bf(conv\u3067\u306ek, pad\u306a\u3069)\u3084\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3092\u4fdd\u5b58<br \/>\n&#8212; report\u4e2d\u306e\u5c64\u304c\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u306e\u3069\u306e\u547c\u3073\u51fa\u3057\u306b\u5bfe\u5fdc\u3059\u308b\u304b\u8abf\u3079\u308b\u306e\u306b\u4fbf\u5229\u3067\u3059<br \/>\n&#8211; \u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u30aa\u30da\u30ec\u30fc\u30bf\u306f\u5358\u7d14\u306b\u7121\u8996\u3055\u308c\u308b<\/p>\n<p>\u3088\u308a\u8a73\u7d30\u306a\u4f7f\u3044\u65b9\u306fGithub\u306eREADME\u3092\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\u3002<br \/>\n\u307e\u305f\u3001\u30aa\u30da\u30ec\u30fc\u30bf\u3054\u3068\u306eFLOPs\u304a\u3088\u3073\u30e1\u30e2\u30ea\u8ee2\u9001\u91cf\u306e\u7b97\u51fa\u57fa\u6e96\u3082\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>* \u958b\u767a\u3068\u4eca\u5f8c\u306e\u5c55\u671b<\/p>\n<p>[https:\/\/github.com\/belltailjp\/chainer_computational_cost:title=github]\u3067\u958b\u767a\u3057\u3066\u3044\u3066\u3001MIT\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u3059\u3002<\/p>\n<p>\u4eca\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u30aa\u30da\u30ec\u30fc\u30bf\u3068\u3057\u3066\u306f\u3001ImageNet\u7cfb(VGG, GoogLeNet, ResNet)\u3001\u304a\u3088\u3073ChainerCV(0.10.0)\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u3082\u306e\u3092\u4e2d\u5fc3\u306b\u6574\u5099\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3057\u3070\u3089\u304f\u306f\u3088\u304f\u4f7f\u308f\u308c\u308b\u3088\u3046\u306a\u30aa\u30da\u30ec\u30fc\u30bf\u3092\u4e2d\u5fc3\u306b\u30b5\u30dd\u30fc\u30c8\u5bfe\u8c61\u3092\u5897\u3084\u3059\u65b9\u5411\u306b\u958b\u767a\u304c\u9032\u3080\u3068\u601d\u3044\u307e\u3059\u3002<br \/>\n\u305d\u308c\u306b\u3042\u305f\u3063\u3066\u3001\u5185\u90e8\u7684\u306a\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u4e2d\u5fc3\u306b\u5927\u304d\u306a\u5909\u66f4\u304c\u52a0\u308f\u308b\u53ef\u80fd\u6027\u3082\u9ad8\u3044\u3067\u3059\u3002<br \/>\n\u7279\u306bRNN\u7cfb\u306e\u5bfe\u5fdc\u304c\u5f53\u9762\u306e\u8ab2\u984c\u3067\u3059\u3002<\/p>\n<p>\u305d\u306e\u4ed6\u3001\u3042\u3089\u3086\u308b\u5f62\u3067\u306e\u8ca2\u732e\u3092\u6b53\u8fce\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u305c\u3072Github\u4e0a\u3067\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>* Special Thanks<\/p>\n<p>\u672c\u8cea\u7684\u306a\u4ed5\u7d44\u307f\u306f\u540c\u50da\u306e[https:\/\/twitter.com\/tabe2314:title=t-abe]\u3055\u3093\u304c\u8003\u6848\u3057\u305f\u3082\u306e\u3067\u3059\u3002<\/p>\n<p>* \u304a\u308f\u308a\u306b<\/p>\n<p>Preferred Networks\u306f\u6df1\u5c64\u5b66\u7fd2\u6280\u8853\u306e\u5b9f\u4e16\u754c\u5fdc\u7528\u306b\u71b1\u304f\u53d6\u308a\u7d44\u3081\u308b\u4eba\u6750\u3092[https:\/\/www.preferred-networks.jp\/ja\/jobs:title=\u52df\u96c6\u3057\u3066\u3044\u307e\u3059]\uff01<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/VGj3daiFNdM\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6d77\u6d0b\u306e\u751f\u7269\u91cf\u306e\u63a8\u5b9a\u3092\u3059\u308b\u3068\u304d\u306b\u306f\u3001\u5b9f\u969b\u306b\u3042\u308b\u7a7a\u9593\u306e\u7a2e\u3054\u3068\u306e\u500b\u4f53\u6570\u30921\u53391\u5339\u6570\u3048\u308b\u308f\u3051\u306b\u306f\u3044\u304d\u307e\u305b\u3093\u3002\u305d\u3053\u3067\u3001\u6c34\u4e2d\u306b\u6b8b\u3063\u305f\u751f\u7269\u306e\u7d30\u80de\u306eDNA\u3059\u306a\u308f\u3061\u74b0\u5883DNA\u306e\u5bc6\u5ea6\u3092\u624b\u304c\u304b\u308a\u306b\u3057\u3066\u63a8\u8a08\u3092\u3059\u308b\u306e\u3060\u305d\u3046\u3067\u3059\uff08[https:\/\/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[57,48,35],"class_list":["post-2537","post","type-post","status-publish","format-standard","hentry","category-1","tag-chainer","tag-python","tag-35"],"_links":{"self":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts\/2537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2537"}],"version-history":[{"count":64,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts\/2537\/revisions"}],"predecessor-version":[{"id":2603,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=\/wp\/v2\/posts\/2537\/revisions\/2603"}],"wp:attachment":[{"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daily.belltail.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}