{"id":1610,"date":"2023-08-17T00:59:29","date_gmt":"2023-08-17T00:59:29","guid":{"rendered":"https:\/\/www.gptmain.news\/?p=1610"},"modified":"2023-08-17T00:59:29","modified_gmt":"2023-08-17T00:59:29","slug":"%d0%bd%d0%b5%d0%b9%d1%80%d0%be%d0%bd%d0%bd%d0%b0%d1%8f-%d1%81%d0%b5%d1%82%d1%8c-%d1%81-%d0%bd%d1%83%d0%bb%d1%8f-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2-gptmain-news","status":"publish","type":"post","link":"https:\/\/gptmain.news\/?p=1610","title":{"rendered":"\u041d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0441 \u043d\u0443\u043b\u044f, \u0447\u0430\u0441\u0442\u044c 2\n | GPTMain News"},"content":{"rendered":"<div id=\"\">\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u0437\u0443\u0447\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439.  \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u2014 \u043b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u0442\u0430\u043a \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0437\u0440\u0435\u043d\u0438\u044f.  \u0426\u0435\u043b\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u043e\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c GPU \u0438 OpenCL, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 ConvNets \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0435 \u0441\u0435\u0442\u0438.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439 \u043d\u0430\u0447\u043d\u0435\u043c.  \u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e CovNets \u0432 \u0438\u0445 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f, \u0441\u043b\u043e\u044f \u043f\u0443\u043b\u0430 \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f.  \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439.  \u0422\u0430\u043a \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u043f\u0435\u0440\u0432\u044b\u0445.<\/p>\n<h2 id=\"convolutional-layer\">\u0421\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u043b\u043e\u0439<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e \u0447\u0430\u0441\u0442\u0438 C++ \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 ConvNet (\u044f \u0441\u0434\u0435\u043b\u0430\u043b \u044d\u0442\u043e \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u0441\u043b\u043e\u0435\u0432), \u043d\u043e \u044f \u0443\u0433\u043b\u0443\u0431\u043b\u044e\u0441\u044c \u0432 \u043a\u043e\u0434 \u044f\u0434\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0434\u0443\u043c\u0430\u044e \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435.  \u0412 \u044d\u0442\u0438\u0445 \u0441\u043b\u043e\u044f\u0445 \u043c\u044b \u0441\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u0445\u043e\u0434\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u044f\u0434\u0440\u043e\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u0430\u0440\u0442\u0443 \u0441\u0442\u0440\u0430\u0445\u0430.<\/p>\n<pre class=\"prism-code language-c\" style=\"color:#F8F8F2;background-color:#282A36\"><p><span class=\"token plain\">kernel  <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">void<\/span><span class=\"token plain\"> <\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">convolve<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">image<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> global Filter<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> filters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> featMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> filterWidth<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> inWidth<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> xIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> yIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> z<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> sum<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> r<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token plain\">filterWidth<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">        <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> c<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token plain\">filterWidth<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">             sum<\/span><span class=\"token operator\">+=<\/span><span class=\"token plain\"> filters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">z<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">weights<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">filterWidth <\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">image<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">c<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">inWidth<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">        <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    sum <\/span><span class=\"token operator\">+=<\/span><span class=\"token plain\">filters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">z<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">bias<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    featMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">featmapdim <\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">z<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">featmapdim<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token plain\"> <\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">relu<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">sum<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"\/><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><\/p><\/pre>\n<p>\u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043c\u044b \u0438\u0441\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043a\u0430\u0440\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c \u043e\u0442 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445.  \u0418\u0442\u0430\u043a, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0437 28&#215;28 \u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u044f\u0434\u0440\u043e \u200b\u200b5&#215;5, \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 24&#215;24=576 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.  \u041e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u043e\u043d\u043b\u0430\u0439\u043d-\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f.<\/p>\n<div class=\"math\"><span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\" display=\"block\"><semantics><mtable rowspacing=\"0.24999999999999992em\" columnalign=\"right left\" columnspacing=\"0em\"><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mrow><mi mathvariant=\"normal\">\u2202<\/mi><mi>\u0415<\/mi><\/mrow><mrow><mi mathvariant=\"normal\">\u2202<\/mi><msubsup><mi>\u0436<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mi>\u043b<\/mi><\/msubsup><\/mrow><\/mfrac><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mrow\/><mo>&#8220;=&#8221;<\/mo><munder><mo>\u2211<\/mo><msup><mi>\u0418\u043a\u0441<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><\/munder><munder><mo>\u2211<\/mo><msup><mi>\u0443<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><\/munder><msubsup><mi>\u0434\u0435\u043b\u044c\u0442\u0430<\/mi><mrow><msup><mi>\u0418\u043a\u0441<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mo separator=\"true\">,<\/mo><msup><mi>\u0443<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><\/mrow><mi>\u043b<\/mi><\/msubsup><mi>\u0444<\/mi><mrow><mo fence=\"true\">(<\/mo><msubsup><mi>\u043e<\/mi><mrow><msup><mi>\u0418\u043a\u0441<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mo>\u2212<\/mo><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><msup><mi>\u0443<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mo>\u2212<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>\u2212<\/mo><mn>1<\/mn><\/mrow><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><\/mrow><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow\/><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mrow\/><mo>&#8220;=&#8221;<\/mo><msubsup><mi>\u0434\u0435\u043b\u044c\u0442\u0430<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mi>\u043b<\/mi><\/msubsup><mo>*<\/mo><mi>\u0444<\/mi><mrow><mo fence=\"true\">(<\/mo><msubsup><mi>\u043e<\/mi><mrow><mo>\u2212<\/mo><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mo>\u2212<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>\u2212<\/mo><mn>1<\/mn><\/mrow><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><\/mrow><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow\/><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mrow\/><mo>&#8220;=&#8221;<\/mo><msubsup><mi>\u0434\u0435\u043b\u044c\u0442\u0430<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mi>\u043b<\/mi><\/msubsup><mo>*<\/mo><mi>\u0444<\/mi><mrow><mo fence=\"true\">(<\/mo><msub><mo><mi mathvariant=\"normal\">\u0433\u043d\u0438\u043b\u044c<\/mi><mo>\u2061<\/mo><\/mo><mrow><mn>18<\/mn><msup><mn>0<\/mn><mo lspace=\"0em\" rspace=\"0em\">\u2218<\/mo><\/msup><\/mrow><\/msub><mrow><mo fence=\"true\">(<\/mo><msubsup><mi>\u043e<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>\u2212<\/mo><mn>1<\/mn><\/mrow><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><mo fence=\"true\">)<\/mo><\/mrow><\/mrow><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mfrac><mrow><mi mathvariant=\"normal\">\u2202<\/mi><mi>\u0415<\/mi><\/mrow><mrow><mi mathvariant=\"normal\">\u2202<\/mi><msubsup><mi>\u043e<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mi>\u043b<\/mi><\/msubsup><\/mrow><\/mfrac><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mrow\/><mo>&#8220;=&#8221;<\/mo><munder><mo>\u2211<\/mo><msup><mi>\u0418\u043a\u0441<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><\/munder><munder><mo>\u2211<\/mo><msup><mi>\u0443<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><\/munder><msubsup><mi>\u0434\u0435\u043b\u044c\u0442\u0430<\/mi><mrow><msup><mi>\u0418\u043a\u0441<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mo separator=\"true\">,<\/mo><msup><mi>\u0443<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><\/mrow><mrow><mi>\u043b<\/mi><mo>+<\/mo><mn>1<\/mn><\/mrow><\/msubsup><msubsup><mi>\u0436<\/mi><mrow><msup><mi>\u0418\u043a\u0441<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mo>\u2212<\/mo><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><msup><mi>\u0443<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mo>\u2212<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>+<\/mo><mn>1<\/mn><\/mrow><\/msubsup><msup><mi>\u0444<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mrow><mo fence=\"true\">(<\/mo><msubsup><mi>\u043e<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mi>\u043b<\/mi><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><\/mrow><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow\/><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mrow\/><mo>&#8220;=&#8221;<\/mo><msubsup><mi>\u0434\u0435\u043b\u044c\u0442\u0430<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>+<\/mo><mn>1<\/mn><\/mrow><\/msubsup><mo>*<\/mo><msubsup><mi>\u0436<\/mi><mrow><mo>\u2212<\/mo><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mo>\u2212<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>+<\/mo><mn>1<\/mn><\/mrow><\/msubsup><msup><mi>\u0444<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mrow><mo fence=\"true\">(<\/mo><msubsup><mi>\u043e<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mi>\u043b<\/mi><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><\/mrow><\/mstyle><\/mtd><\/mtr><mtr><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow\/><\/mstyle><\/mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mrow\/><mo>&#8220;=&#8221;<\/mo><msubsup><mi>\u0434\u0435\u043b\u044c\u0442\u0430<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>+<\/mo><mn>1<\/mn><\/mrow><\/msubsup><mo>*<\/mo><msub><mo><mi mathvariant=\"normal\">\u0433\u043d\u0438\u043b\u044c<\/mi><mo>\u2061<\/mo><\/mo><mrow><mn>18<\/mn><msup><mn>0<\/mn><mo lspace=\"0em\" rspace=\"0em\">\u2218<\/mo><\/msup><\/mrow><\/msub><mrow><mo fence=\"true\">(<\/mo><msubsup><mi>\u0436<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mrow><mi>\u043b<\/mi><mo>+<\/mo><mn>1<\/mn><\/mrow><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><msup><mi>\u0444<\/mi><mo mathvariant=\"normal\" lspace=\"0em\" rspace=\"0em\">\u2032<\/mo><\/msup><mrow><mo fence=\"true\">(<\/mo><msubsup><mi>\u043e<\/mi><mrow><mi>\u0418\u043a\u0441<\/mi><mo separator=\"true\">,<\/mo><mi>\u0443<\/mi><\/mrow><mi>\u043b<\/mi><\/msubsup><mo fence=\"true\">)<\/mo><\/mrow><\/mrow><\/mstyle><\/mtd><\/mtr><\/mtable><annotation encoding=\"application\/x-tex\">\\begin{\u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043e} \\frac{\\partial E}{\\partial w_{x, y}^{l}} &#038;=\\sum_{x^{\\prime}} \\sum_{y^{\\prime}} \\delta_ {x^{\\prime}, y^{\\prime}}^{l} f\\left(o_{x^{\\prime}-x, y^{\\prime}-y}^{l-1}\\ \u0441\u043f\u0440\u0430\u0432\u0430) \\\\ &#038;=\\delta_{x, y}^{l} * f\\left(o_{-x,-y}^{l-1}\\right) \\\\ &#038;=\\delta_{x, y} ^{l} * f\\left(\\operatorname{rot}_{180^{\\circ}}\\left(o_{x, y}^{l-1}\\right)\\right) \\\\ \\frac{\\ \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 E}{\\ \u043f\u0430\u0440\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 o_{x, y}^{l}} &#038;=\\sum_{x^{\\prime}} \\sum_{y^{\\prime}} \\delta_{x^{\\prime}, y ^ {\\ \u043f\u0440\u043e\u0441\u0442\u043e\u0435}} ^ {l + 1} w_ {x ^ {\\ \u043f\u0440\u043e\u0441\u0442\u043e\u0435} -x, y ^ {\\ \u043f\u0440\u043e\u0441\u0442\u043e\u0435} -y} ^ {l + 1} f ^ {\\ \u043f\u0440\u043e\u0441\u0442\u043e\u0435} \\ \u0432\u043b\u0435\u0432\u043e (o_ {x , y}^{l}\\right) \\\\ &#038;=\\delta_{x, y}^{l+1} * w_{-x,-y}^{l+1} f^{\\prime}\\left (o_{x, y}^{l}\\right) \\\\ &#038;=\\delta_{x, y}^{l+1} * \\operatorname{rot}_{180^{\\circ}}\\left(w_ {x, y}^{l+1}\\right) f^{\\prime}\\left(o_{x, y}^{l}\\right) \\end{align}<\/annotation><\/semantics><\/math><\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:12.53193em;vertical-align:-6.015965em\"\/><span class=\"mord\"><span class=\"mtable\"><span class=\"col-align-r\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:6.5159650000000005em\"><span style=\"top:-8.515965000000001em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"\/><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em\"><span style=\"top:-2.314em\"><span class=\"pstrut\" style=\"height:3em\"\/><span class=\"mord\"><span class=\"mord\" style=\"margin-right:0.05556em\">\u2202<\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02691em\">\u0436<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7751079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.02691em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-2.989em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"\/><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"\/><\/span><span style=\"top:-3.677em\"><span class=\"pstrut\" style=\"height:3em\"\/><span class=\"mord\"><span class=\"mord\" style=\"margin-right:0.05556em\">\u2202<\/span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">\u0415<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.069108em\"><span\/><\/span><\/span><\/span><\/span><span class=\"mclose nulldelimiter\"\/><\/span><\/span><\/span><span style=\"top:-5.886764em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"\/><\/span><span style=\"top:-4.3045480000000005em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"\/><\/span><span style=\"top:-2.250000000000001em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"><span class=\"mopen nulldelimiter\"\/><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.37144em\"><span style=\"top:-2.314em\"><span class=\"pstrut\" style=\"height:3em\"\/><span class=\"mord\"><span class=\"mord\" style=\"margin-right:0.05556em\">\u2202<\/span><span class=\"mord\"><span class=\"mord mathnormal\">\u043e<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7751079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-2.989em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"\/><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"\/><\/span><span style=\"top:-3.677em\"><span class=\"pstrut\" style=\"height:3em\"\/><span class=\"mord\"><span class=\"mord\" style=\"margin-right:0.05556em\">\u2202<\/span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">\u0415<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.069108em\"><span\/><\/span><\/span><\/span><\/span><span class=\"mclose nulldelimiter\"\/><\/span><\/span><\/span><span style=\"top:0.379200999999999em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"\/><\/span><span style=\"top:1.9614169999999997em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"\/><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:6.015965em\"><span\/><\/span><\/span><\/span><\/span><span class=\"col-align-l\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:6.5159650000000005em\"><span style=\"top:-8.515965000000001em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"\/><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mrel\">&#8220;=&#8221;<\/span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.050005em\"><span style=\"top:-1.8560149999999997em;margin-left:0em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.0500049999999996em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span><span class=\"mop op-symbol large-op\">\u2211<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.2939850000000002em\"><span\/><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.050005em\"><span style=\"top:-1.8560149999999997em;margin-left:0em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.0500049999999996em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span><span class=\"mop op-symbol large-op\">\u2211<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.430093em\"><span\/><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em\">\u0434\u0435\u043b\u044c\u0442\u0430<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.899108em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.03785em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.1130000000000004em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">\u0444<\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size2\">(<\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">\u043e<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4166890000000003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mbin mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mbin mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">\u2212<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.419419em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size2\">)<\/span><\/span><\/span><\/span><\/span><span style=\"top:-5.886764em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"\/><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mrel\">&#8220;=&#8221;<\/span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em\">\u0434\u0435\u043b\u044c\u0442\u0430<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.899108em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.03785em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.1130000000000004em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mbin\">*<\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">\u0444<\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">(<\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">\u043e<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">\u2212<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">)<\/span><\/span><\/span><\/span><\/span><span style=\"top:-4.3045480000000005em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"\/><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mrel\">&#8220;=&#8221;<\/span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em\">\u0434\u0435\u043b\u044c\u0442\u0430<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.899108em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.03785em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.1130000000000004em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mbin\">*<\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">\u0444<\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">(<\/span><\/span><span class=\"mop\"><span class=\"mop\"><span class=\"mord mathrm\">\u0440<\/span><span class=\"mord mathrm\">\u043e<\/span><span class=\"mord mathrm\">\u0442<\/span><\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em\"><span style=\"top:-2.5500000000000003em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1<\/span><span class=\"mord mtight\">8<\/span><span class=\"mord mtight\"><span class=\"mord mtight\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6034642857142858em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2218<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">(<\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">\u043e<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">\u2212<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">)<\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">)<\/span><\/span><\/span><\/span><\/span><span style=\"top:-2.250000000000001em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"\/><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mrel\">&#8220;=&#8221;<\/span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.050005em\"><span style=\"top:-1.8560149999999997em;margin-left:0em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.0500049999999996em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span><span class=\"mop op-symbol large-op\">\u2211<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.2939850000000002em\"><span\/><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"mop op-limits\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.050005em\"><span style=\"top:-1.8560149999999997em;margin-left:0em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.0500049999999996em\"><span class=\"pstrut\" style=\"height:3.05em\"\/><span><span class=\"mop op-symbol large-op\">\u2211<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.430093em\"><span\/><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em\">\u0434\u0435\u043b\u044c\u0442\u0430<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4166890000000003em;margin-left:-0.03785em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">+<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.419419em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02691em\">\u0436<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4166890000000003em;margin-left:-0.02691em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mbin mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6828285714285715em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mbin mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">+<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.419419em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">\u0444<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.801892em\"><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">(<\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">\u043e<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.899108em\"><span style=\"top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.1130000000000004em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">)<\/span><\/span><\/span><\/span><\/span><span style=\"top:0.379200999999999em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"\/><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mrel\">&#8220;=&#8221;<\/span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em\">\u0434\u0435\u043b\u044c\u0442\u0430<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.03785em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">+<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mbin\">*<\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02691em\">\u0436<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.02691em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mtight\">\u2212<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">+<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">\u0444<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.801892em\"><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">(<\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">\u043e<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.899108em\"><span style=\"top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.1130000000000004em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">)<\/span><\/span><\/span><\/span><\/span><span style=\"top:1.9614169999999997em\"><span class=\"pstrut\" style=\"height:3.3714399999999998em\"\/><span class=\"mord\"><span class=\"mord\"\/><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mrel\">&#8220;=&#8221;<\/span><span class=\"mspace\" style=\"margin-right:0.2777777777777778em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03785em\">\u0434\u0435\u043b\u044c\u0442\u0430<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.03785em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">+<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mbin\">*<\/span><span class=\"mspace\" style=\"margin-right:0.2222222222222222em\"\/><span class=\"mop\"><span class=\"mop\"><span class=\"mord mathrm\">\u0440<\/span><span class=\"mord mathrm\">\u043e<\/span><span class=\"mord mathrm\">\u0442<\/span><\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.30110799999999993em\"><span style=\"top:-2.5500000000000003em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1<\/span><span class=\"mord mtight\">8<\/span><span class=\"mord mtight\"><span class=\"mord mtight\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6034642857142858em\"><span style=\"top:-2.786em;margin-right:0.07142857142857144em\"><span class=\"pstrut\" style=\"height:2.5em\"\/><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2218<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">(<\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.02691em\">\u0436<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8991079999999999em\"><span style=\"top:-2.4530000000000003em;margin-left:-0.02691em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><span class=\"mbin mtight\">+<\/span><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">)<\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">\u0444<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.801892em\"><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">\u2032<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right:0.16666666666666666em\"\/><span class=\"minner\"><span class=\"mopen delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">(<\/span><\/span><span class=\"mord\"><span class=\"mord mathnormal\">\u043e<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.899108em\"><span style=\"top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">\u0418\u043a\u0441<\/span><span class=\"mpunct mtight\">,<\/span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">\u0443<\/span><\/span><\/span><\/span><span style=\"top:-3.1130000000000004em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"\/><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">\u043b<\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.383108em\"><span\/><\/span><\/span><\/span><\/span><\/span><span class=\"mclose delimcenter\" style=\"top:0em\"><span class=\"delimsizing size1\">)<\/span><\/span><\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:6.015965em\"><span\/><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/div>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043c \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 \u0432 \u043a\u043e\u0434 C, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<pre class=\"prism-code language-c\" style=\"color:#F8F8F2;background-color:#282A36\"><p><span class=\"token plain\">kernel <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">void<\/span><span class=\"token plain\"> <\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">deltas<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">global Node <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> nodes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global Node <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> nextnodes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">deltas<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">indexes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> dim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> nextnumNodes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> xIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> yIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> z<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> i <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim <\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">z<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> delta <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> <\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> j <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> <\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"> j <\/span><span class=\"token operator\">!=<\/span><span class=\"token plain\">nextnumNodes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"> j<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">        delta <\/span><span class=\"token operator\">+=<\/span><span class=\"token plain\"> nextnodes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">j<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">delta <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> nextnodes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">j<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">weights<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">i<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    delta <\/span><span class=\"token operator\">*=<\/span><span class=\"token plain\"> <\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">devsigmoid<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">nodes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">i<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">output<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> r<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">            <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> c<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">if<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token operator\">==<\/span><span class=\"token plain\">indexes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">i<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                    deltas<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token operator\">+<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">c<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">dim<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">z<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">dim<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">dim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token plain\">delta<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">            <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"> kernel <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">void<\/span><span class=\"token plain\"> <\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">backpropcnn<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\"> global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> featMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> deltas<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global Filter<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> filters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> imagedim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> filterdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> a<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> Image<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">         <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> xIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">         <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> yIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">         <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> z<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">         <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> sum<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">         <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> r<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token plain\">featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">             <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> c<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token plain\">featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                 sum<\/span><span class=\"token operator\">+=<\/span><span class=\"token plain\"> deltas<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">featmapdim <\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">z<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">featmapdim<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">Image<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">imagedim <\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">c<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                 <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">             <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">        filters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token plain\">z<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">weights<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">filterdim <\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">yIn<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token plain\"> <\/span><span class=\"token operator\">-=<\/span><span class=\"token plain\">a<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">sum<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><\/p><\/pre>\n<h2 id=\"pooling-layer\">\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439<\/h2>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0435\u0432 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u043d\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f: \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u0447\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e.  \u0412 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0443\u043b\u0435 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440 (\u043e\u0431\u044b\u0447\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 2&#215;2) \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043a \u043a\u0430\u0440\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.  \u0426\u0435\u043b\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043a\u043d\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0438\u0437 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<pre class=\"prism-code language-c\" style=\"color:#F8F8F2;background-color:#282A36\"><p><span class=\"token plain\">kernel <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">void<\/span><span class=\"token plain\"> <\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">pooling<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\"> global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> prevfeatMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> poolMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">global <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\"> indexes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> Width<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> xIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> yIn<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">const<\/span><span class=\"token plain\"> <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> z<\/span><span class=\"token operator\">=<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">get_global_id<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">     <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">float<\/span><span class=\"token plain\"> max<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> index <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> <\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">         <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> r<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">r<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">             <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">for<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">int<\/span><span class=\"token plain\"> c<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">&lt;<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">++<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                 <\/span><span class=\"token keyword\" style=\"color:rgb(189, 147, 249);font-style:italic\">if<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">prevfeatMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">c<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">Width<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">z <\/span><span class=\"token operator\">+<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token plain\">max<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                       max<\/span><span class=\"token operator\">=<\/span><span class=\"token plain\">prevfeatMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">c<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">Width<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">z <\/span><span class=\"token operator\">+<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                       index<\/span><span class=\"token operator\">=<\/span><span class=\"token plain\">c<\/span><span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">r<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                       <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">                 <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">             <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">             poolMap<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim <\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">z<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token plain\">max<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">             indexes<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">xIn<\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">yIn<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim <\/span><span class=\"token operator\">+<\/span><span class=\"token plain\">z<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token operator\">*<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token plain\">index<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}<\/span><\/p><\/pre>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f.  \u0412\u0441\u0435, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u044d\u0442\u043e \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u044b.  \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u043d\u0430 \u00ab\u043f\u043e\u0431\u0435\u0434\u0438\u0432\u0448\u0435\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u0435\u00bb \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.  \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043c \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 \u0440\u0430\u043d\u0435\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u00ab\u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u00bb.  \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u0438\u0434\u043d\u0430 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab\u0434\u0435\u043b\u044c\u0442\u044b\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0440\u0430\u0441\u0447\u0435\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u044f\u0434\u0440\u0430, \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenCV)<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 cl: Buffers \u0438 cl::Kernels<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u044f\u0434\u0440\u0430 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c:<\/p>\n<\/li>\n<\/ul>\n<pre class=\"prism-code language-c\" style=\"color:#F8F8F2;background-color:#282A36\"><p><span class=\"token plain\">convKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_InputBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">convKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_FiltersBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">convKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_FeatMapBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">convKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> filterdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">convKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> inputdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">convKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">err <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">OpenCL<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">clqueue<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">enqueueNDRangeKernel<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">convKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">NDRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> convLayer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">numOfFilters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">poolKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_FeatMapBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">poolKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_PoolBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">poolKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_PoolIndexBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">poolKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">poolKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">err <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">OpenCL<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">clqueue<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">enqueueNDRangeKernel<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">poolKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">NDRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> convLayer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">numOfFilters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_layersBuffers<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_layersBuffers<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_deltasBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_PoolIndexBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> h_netVec<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">]<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">6<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">err <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">OpenCL<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">clqueue<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">enqueueNDRangeKernel<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">deltasKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">NDRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> pooldim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">convLayer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">numOfFilters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_FeatMapBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_rotatedImgBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_FiltersBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> featmapdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> inputdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> filterdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">6<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> lr<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">setArg<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> d_InputBuffer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">err <\/span><span class=\"token operator\">=<\/span><span class=\"token plain\"> <\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">OpenCL<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">clqueue<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">enqueueNDRangeKernel<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">backpropcnnKern<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token function\" style=\"color:rgb(80, 250, 123)\">NDRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">(<\/span><span class=\"token plain\">filterdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"> filterdim<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\">convLayer<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">.<\/span><span class=\"token plain\">numOfFilters<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">,<\/span><span class=\"token plain\"\/><\/p><p><span class=\"token plain\">    cl<\/span><span class=\"token operator\">::<\/span><span class=\"token plain\">NullRange<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">)<\/span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;<\/span><\/p><\/pre>\n<p>\u042d\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u043f\u043b\u043e\u0445\u043e, \u0432\u0435\u0440\u043d\u043e?  \u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u0432\u0435\u0449\u044c \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u043e\u0441\u0442\u043e\u0432, \u0442\u0430\u043a \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 \u0446\u0435\u043b\u043e\u043c \u2014 \u044d\u0442\u043e \u043d\u0435 \u0447\u0442\u043e \u0438\u043d\u043e\u0435, \u043a\u0430\u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.  \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u043e\u0434\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443.  \u041c\u044b \u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0441 \u043d\u0443\u043b\u044f \u0438 \u0434\u0430\u0436\u0435 \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u0441\u043b\u043e\u0436\u043d\u043e.  \u0412\u0441\u0435, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u044d\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u044b \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b.<\/p>\n<p>\u0415\u0449\u0435 \u0440\u0430\u0437 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043c\u043e\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 github.  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439<\/p>\n<div class=\"dl-prod-book-inline-banner\">\n<div class=\"dl-prod-book-inline-banner__image gatsby-image-wrapper\" style=\"position:relative;overflow:hidden\"><img decoding=\"async\" aria-hidden=\"true\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFzklEQVQ4y1WU2VOb1xnGzyfVbt1O6tST4AVjglc2s1sskgxC8GlBIAmQkMRugtlBbAJjwAKMDYbYYOyMSTJt46YzSV1PO2k7uWimnfauF532or3oTC\/7L3R6+ev7SaGeXjxzzrf9znOe9\/2OUtm1qAs3UVl2tOybmLJlvGBDy7Kina9JyZRSNWaRKVPGzCq0c5WYDJ21oE6Xp5VRhlI5TtR79WmdrkG9UykPqmQuOlONelc+OCUvn5KX3y5B\/UD0drG8Z9wrRZ0sFri8a4DPiNRlF2aRAQyPrxNff87U2gFtw6tU+keIjCWJTawzvvKY2Y0Dhha2GVnaQY\/FCQ3d5dbsfTFQgSlLzIh7pa75UBdFWW5qe1fpTuzROb\/PVX2Y0uA0ocltAiMbtE9sEZ3ZJTi6SfPQBs7uRapDs\/iH1sStwM7ZUedtAsz1425uIhDw4vU6OVdSj8ftoMxWj8\/bwPVqB5lFdgotdhx1VtwNVoJuK9fK7ehOGzeqqrHW1lNgcXDich1KK2zn4wUPP7zj4XfbLg4THkZ7mni55ObpjJsv111M9Xn40xOdtqAH3ethc9TFyzs6S+\/r7Md1\/rDVwMsFJyfzpB7HSjqo8wXJqGynJ9aC2+9nsLuZtrbmFLjR18xkvwe\/30NvxEul04tN99Ag4NsxF5FWF\/W6Tle7zndzddlySSeqMIa6HkXlRVD5HaIwKleUJ7oYxJwXSs8vNcv9AOpKi8xFl+X6klGDJimqV649AizrRSvrQZV2YyrtRCuJoRVHMZfIAvltnKrpZ2f2EYVTEr61H5PAtII2TPmtaHkBNKmBltuCKVfgRoFVxQCq\/JaoH1XWh7GAAVeFEU44pjmdPGQucR9HZBLL4h6ZvoS4bJXn4rgglFpU5QXTzgWuVOUQyjKIuvE+R3BzWT9V\/juci39IxsAqnzbO0FQywFnnAGUrh1wJJMWlRHO94w24oD0NVzVjqOpRVNUIpqrhFNTqWmR5ag9\/KMFaU4KvJp9i8cxhzumg0NZLT\/QhVyvku6IIWpFEcz3yBq7scZRtSvKZQKsZF\/AYbk+cj1pn+bN+l78PPqY3usj3yjo4W9xLpkDHJp7SPvYzcSTAUsm\/uEskxS2S4qraedTNWdEMJvu0wOP01Y\/yr+ga\/+zZpcEhkRRIPvkBsotDXL0Wxj\/5gqEP\/yKuelI7Mkv+ZqO4BlzV30E5FlB1CUx1afi9lkW+GNgkw3FbYEGOF4c5WRqmqCjM3PkAv50\/YPfVP8gqHybTcpu3JH\/zUWGVvopqWEY575KCO5fIk9yOX5B\/M8fD8Ypuvl8RJV968UVBN\/+Ww4CvP+WvyedU3JjkRPUI\/1dY5d1AuaXHXPdIwRu\/gVtkVeOczGkkp7yTr9sm4bND+M0hf5u7z4B1ireMzK2i6rFUUZVRVNX8AOXbRDUJ2LMucGkJgWvG3LnIaWlW50U3fzx4xn9+\/3O+jK4SqZrnlMSkORJoRv5G9rKAqpkQoH8L1fKQFPgI3iJjYBtTaI9vh5+SaRujtGaQYNMyDlkkuy2JCm+jWh+ljegr\/K8WKZgBaN5MSZO56UjGvcADLi39iNatz7jSucV3\/Gt8yye78Bm7WMakG7nPCUxc1o4bW06DlO9+esuNRpbiQJexRa7DmxzresC127uUDz\/h3S5x1pRMO7LLb2g1YIvfdIp0iQHSDJhrjY6t1+grP6XjyS9p2X2NY\/MLYge\/5uba57Q+ek388Cv6nv0Kz84rIvu\/IPrgc2pnDjmmL6XaLr1lo8qpSic5G9sls2+P4AeviG3\/BHviCRVy7NfM7BBc2Wf00QtCy7s4kp9gufdj3uvbJVt+Q5PkmgYmDKC0jCeZVuNKKuCs4cf0LD\/j4foMQ4tTDC8MMZ24JadOHwtLg1intzgzsifZiSPb7BtYastHMKNdjFECvzoubjY+YmL1OcH5PYpHdsjo2uKdzodcuLVNSXyf7DEBSlG0+oU3sLo5\/gubMZbW7M93hgAAAABJRU5ErkJggg==\" alt=\"\u041a\u043d\u0438\u0433\u0430 \u00ab\u0413\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u00bb\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center;opacity:1;transition-delay:500ms\"\/><noscript><picture><source srcset=\"https:\/\/theaisummer.com\/static\/502e7c498dd9d981ac44c1dcd10f9276\/69585\/deep-learning-book-cover.png 200w,&#10;https:\/\/theaisummer.com\/static\/502e7c498dd9d981ac44c1dcd10f9276\/497c6\/deep-learning-book-cover.png 400w,&#10;https:\/\/theaisummer.com\/static\/502e7c498dd9d981ac44c1dcd10f9276\/3c17d\/deep-learning-book-cover.png 720w\" sizes=\"(max-width: 720px) 100vw, 720px\"\/><img decoding=\"async\" loading=\"lazy\" sizes=\"(max-width: 720px) 100vw, 720px\" srcset=\"https:\/\/theaisummer.com\/static\/502e7c498dd9d981ac44c1dcd10f9276\/69585\/deep-learning-book-cover.png 200w,&#10;https:\/\/theaisummer.com\/static\/502e7c498dd9d981ac44c1dcd10f9276\/497c6\/deep-learning-book-cover.png 400w,&#10;https:\/\/theaisummer.com\/static\/502e7c498dd9d981ac44c1dcd10f9276\/3c17d\/deep-learning-book-cover.png 720w\" src=\"https:\/\/theaisummer.com\/static\/502e7c498dd9d981ac44c1dcd10f9276\/3c17d\/deep-learning-book-cover.png\" alt=\"\u041a\u043d\u0438\u0433\u0430 \u00ab\u0413\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u00bb\" style=\"position:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center\"\/><\/picture><\/noscript><\/div>\n<div class=\"dl-prod-book-inline-banner__text\">\n<h2>\u041a\u043d\u0438\u0433\u0430 \u00ab\u0413\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u00bb \ud83d\udcd6<\/h2>\n<h4>\u0423\u0437\u043d\u0430\u0439\u0442\u0435, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c, \u043e\u0431\u0443\u0447\u0430\u0442\u044c, \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u0442\u044c, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.  \u0418\u0437\u0443\u0447\u0438\u0442\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 MLOps \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445.<\/h4>\n<p>\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435<\/p><\/div>\n<\/div>\n<p><em class=\"affiliate-disclosure\">* \u0420\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438: \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u0441\u0441\u044b\u043b\u043e\u043a \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0441\u043a\u0438\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u0438 \u043c\u044b \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0442\u0440\u0430\u0442 \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044e, \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u0442\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u043e\u043a\u0443\u043f\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435.<\/em><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u0437\u0443\u0447\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u2014 \u043b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u0442\u0430\u043a \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0437\u0440\u0435\u043d\u0438\u044f. \u0426\u0435\u043b\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1611,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-1610","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ai-research-and-news"},"_links":{"self":[{"href":"https:\/\/gptmain.news\/index.php?rest_route=\/wp\/v2\/posts\/1610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gptmain.news\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gptmain.news\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gptmain.news\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gptmain.news\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1610"}],"version-history":[{"count":0,"href":"https:\/\/gptmain.news\/index.php?rest_route=\/wp\/v2\/posts\/1610\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gptmain.news\/index.php?rest_route=\/wp\/v2\/media\/1611"}],"wp:attachment":[{"href":"https:\/\/gptmain.news\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1610"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gptmain.news\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1610"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gptmain.news\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}