{"id":387061,"date":"2024-06-29T07:05:56","date_gmt":"2024-06-29T07:05:56","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=387061"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=387061","title":{"rendered":"<span>\u0413\u043e: \u0414\u043e\u043b\u0433\u0430\u044f \u0434\u043e\u0440\u043e\u0433\u0430 \u043a \u0431\u043e\u0442\u0443<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/dagazproject.github.io\/go\/go-19x19-advisor.htm?turn=1;&amp;setup=991\/991\/95b4\/3w93b2\/991\/991\/991\/991\/991\/991\/991\/991\/991\/991\/3w92b3\/94w5\/97b2\/991\/991\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" align=\"left\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vb\/ec\/-l\/vbec-lydceg5dprlbik-oho3ztu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/vb\/ec\/-l\/vbec-lydceg5dprlbik-oho3ztu.png\"\/><\/a><b><i>There is no difference between theory and practice in theory, <br \/>  but there is often a great deal of difference between theory <br \/>  and practice in practice.<\/p>\n<p>  <a href=\"https:\/\/quoteinvestigator.com\/2018\/04\/14\/theory\/#more-18386\" rel=\"nofollow noopener noreferrer\">Yogi Berra<\/a><\/p>\n<p>  \u042f \u0441\u043b\u0435\u043f\u044b\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u0433\u043b\u0430\u0437 \u0432\u0441\u0442\u0430\u0432\u0438\u043b \u0437\u0432\u0435\u0437\u0434\u044b \u0438 \u0441\u0438\u043d\u0435\u0435 \u043d\u0435\u0431\u043e.<\/p>\n<p>  <a href=\"http:\/\/chords.seriyps.ru\/short\/ddt::ya-ostanovil-vremya\/\" rel=\"nofollow noopener noreferrer\">\u042e\u0440\u0438\u0439 \u0428\u0435\u0432\u0447\u0443\u043a<\/a><\/i><br \/>  <\/b><br \/>  \u0422\u0435\u043c\u0430 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0431\u043e\u0442\u043e\u0432 \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b\u0430 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"https:\/\/github.com\/GlukKazan\/Dagaz\" rel=\"nofollow noopener noreferrer\">Dagaz<\/a>, \u044f \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 <a href=\"https:\/\/dagazproject.github.io\/\" rel=\"nofollow noopener noreferrer\">\u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0438\u0433\u0440\u044b<\/a>, \u043d\u043e \u0447\u0442\u043e \u0432 \u043d\u0438\u0445 \u0442\u043e\u043b\u043a\u0443, \u0435\u0441\u043b\u0438 \u0441 \u0442\u043e\u0431\u043e\u0439 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0438\u0433\u0440\u0430\u0435\u0442? <a href=\"https:\/\/nestjs.com\/\" rel=\"nofollow noopener noreferrer\">Nest<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c <a href=\"https:\/\/games.dtco.ru\/map\" rel=\"nofollow noopener noreferrer\">\u0441\u0435\u0440\u0432\u0435\u0440<\/a>, \u0434\u043b\u044f \u0438\u0433\u0440\u044b \u043f\u043e \u0441\u0435\u0442\u0438, \u043d\u043e \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u043d\u0430 \u043d\u0451\u043c \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0440\u043e\u0434\u0443, \u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438. \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u043e\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043f\u0438\u0441\u0430\u043b, \u0431\u044b\u043b\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0441\u043b\u0430\u0431\u044b\u043c\u0438. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 <a href=\"https:\/\/www.chessprogramming.org\/Garbochess\" rel=\"nofollow noopener noreferrer\">Garbochess<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e <a href=\"https:\/\/habr.com\/ru\/post\/541086\/\">\u043f\u0435\u0440\u0435\u043b\u043e\u043c\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e<\/a>, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u043b\u043e\u0441\u044c \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0445 \u0438\u0433\u0440. \u041f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u0442 \u0434\u043b\u044f \u0438\u0433\u0440\u044b \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%BE\" rel=\"nofollow noopener noreferrer\">\u0413\u043e<\/a>\u2026<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u044d\u0442\u0443 \u043a\u043d\u0438\u0433\u0443:<\/p>\n<p>  <a href=\"https:\/\/www.manning.com\/books\/deep-learning-and-the-game-of-go\" rel=\"nofollow noopener noreferrer\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/qa\/pm\/vn\/qapmvnnf5fg-vpjgju_bfxm_0tg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/qa\/pm\/vn\/qapmvnnf5fg-vpjgju_bfxm_0tg.jpeg\" data-blurred=\"true\"\/><\/div>\n<p><\/a><br \/>  \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f AI, \u0438\u0433\u0440\u0430 \u0413\u043e, \u043f\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0431\u043e\u0442\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0438\u0433\u0440\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0438 \u0440\u0430\u043d\u0435\u0435, \u043d\u043e \u0438\u0445 \u0441\u0438\u043b\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u043b\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%BE#%D0%AF%D0%BF%D0%BE%D0%BD%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%80%D0%B0%D0%BD%D0%B3%D0%BE%D0%B2\" rel=\"nofollow noopener noreferrer\">2-3 \u0434\u0430\u043d<\/a>, \u0447\u0442\u043e \u043f\u043e \u043c\u0435\u0440\u043a\u0430\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u043d\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u0413\u043e \u0441\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u043e\u0442\u0430 \u0432\u0441\u0435\u0440\u044c\u0451\u0437 \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0430\u0441\u044c, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u0442\u0440\u0438\u0443\u043c\u0444\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0431\u0435\u0434\u044b <a href=\"https:\/\/ru.wikipedia.org\/wiki\/AlphaGo\" rel=\"nofollow noopener noreferrer\">Alpha Go<\/a> \u0432 \u043c\u0430\u0440\u0442\u0435 2016 \u0433\u043e\u0434\u0430. \u0412 \u0441\u0432\u043e\u0435\u0439 \u043a\u043d\u0438\u0433\u0435, \u041c\u0430\u043a\u0441 \u041f\u0430\u043c\u043f\u0435\u0440\u043b\u0430 \u0438 \u041a\u0435\u0432\u0438\u043d \u0424\u0435\u0440\u0433\u044e\u0441\u043e\u043d, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0438 \u0434\u0432\u0438\u0433\u0430\u044f\u0441\u044c \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443, \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u044e\u0442, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438 \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043a\u0430\u043a Alpha Go, \u0442\u0430\u043a \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/AlphaZero\" rel=\"nofollow noopener noreferrer\">AlphaGo Zero<\/a>.<\/p>\n<h3>\u0410 \u0432\u043d\u0443\u0442\u0440\u0435 \u0443 \u0435\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0430!<\/h3>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0434\u0435\u043b\u043e \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c \u0431\u0435\u0437 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439. \u0422\u0430\u043a\u0442\u0438\u043a\u0430 \u0438\u0433\u0440\u044b \u0413\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 &#171;<a href=\"https:\/\/clubgo.ru\/classic-school\/#%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B5-%D0%B8-%D0%BF%D0%BB%D0%BE%D1%85%D0%B8%D0%B5-%D1%84%D0%BE%D1%80%D0%BC%D1%8B\" rel=\"nofollow noopener noreferrer\">\u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u0444\u043e\u0440\u043c<\/a>&#171;, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044e, \u0437\u0430\u0449\u0438\u0442\u0438\u0432 \u0435\u0451 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043e\u0446\u0435\u043d\u043a\u0435 \u0444\u043e\u0440\u043c \u2014 \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u0434\u043e\u0441\u043a\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0433\u0440\u044b. \u041d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438, \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%B2%D1%91%D1%80%D1%82%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%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\" rel=\"nofollow noopener noreferrer\">\u0441\u0432\u0451\u0440\u0442\u043e\u0447\u043d\u044b\u0435<\/a>, \u0438 \u043c\u0435\u0442\u043e\u0434\u044b <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%BB%D1%83%D0%B1%D0%BE%D0%BA%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5\" rel=\"nofollow noopener noreferrer\">\u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/a>, \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b\u0438 \u0441\u0435\u0431\u044f \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u0411\u044b\u043b\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u043d\u043e \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u043c, \u0445\u043e\u0442\u044f \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u043c, \u0432 \u0440\u0435\u0442\u0440\u043e\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435.<\/p>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u043a\u043d\u0438\u0433\u0438, \u0430\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u0430\u043c \u0432 <a href=\"https:\/\/github.com\/maxpumperla\/deep_learning_and_the_game_of_go\" rel=\"nofollow noopener noreferrer\">GitHub-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a>. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Python\" rel=\"nofollow noopener noreferrer\">Python<\/a>, \u0441\u0442\u0430\u0432\u0448\u0438\u0439 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0436\u0435, \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <a href=\"https:\/\/www.tensorflow.org\/\" rel=\"nofollow noopener noreferrer\">Tensorflow<\/a> \u0438 <a href=\"https:\/\/keras.io\/\" rel=\"nofollow noopener noreferrer\">Keras<\/a>.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u042f \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043e\u043a\u0443\u043d\u0443\u043b\u0441\u044f \u0432 \u043d\u0435\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043c\u0443\u044e \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u0443 Python-\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u041a\u0430\u043a \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0432\u0448\u0435\u043c\u0443\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437 \u0432 \u0436\u0438\u0437\u043d\u0438 (\u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437, \u044f \u043f\u043e\u043c\u043e\u0433\u0430\u043b \u0434\u043e\u0447\u043a\u0435 \u0441 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u043c \u0437\u0430\u0434\u0430\u043d\u0438\u0435\u043c), \u043c\u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u043f\u0443\u0442\u0430\u0442\u044c \u0433\u043e\u0440\u0434\u0438\u0435\u0432 \u0443\u0437\u0435\u043b <a href=\"https:\/\/github.com\/maxpumperla\/deep_learning_and_the_game_of_go\/blob\/master\/code\/requirements.txt\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/a> \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0443 \u043b\u044e\u0434\u0435\u0439 \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u0445, \u043c\u043e\u0438 \u043f\u043e\u0442\u0443\u0433\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u0443\u0441\u043c\u0435\u0448\u043a\u0443. \u0412\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 \u043e\u043d\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"plaintext\">valentin@ecomdev2:\/opt\/go$ source venv\/bin\/activate (venv) valentin@ecomdev2:\/opt\/go$ pip3 install -r requirements.txt ... ERROR: dlgo 0.2 has requirement keras==2.2.2, but you'll have keras 2.6.0 which is incompatible. ERROR: dlgo 0.2 has requirement numpy&lt;=1.14.5, but you'll have numpy 1.21.2 which is incompatible. ERROR: tensorflow 2.6.0 has requirement numpy~=1.19.2, but you'll have numpy 1.21.2 which is incompatible. ... (venv) valentin@ecomdev2:\/opt\/go$ pip3 install tensorflow==2.2.2 ... ERROR: keras 2.2.2 has requirement keras-preprocessing==1.0.2, but you'll have keras-preprocessing 1.1.2 which is incompatible. ERROR: dlgo 0.2 has requirement numpy&lt;=1.14.5, but you'll have numpy 1.18.5 which is incompatible. ... (venv) valentin@ecomdev2:\/opt\/go$ pip3 install keras-preprocessing==1.0.2 ... ERROR: tensorflow 2.2.2 has requirement keras-preprocessing>=1.1.0, but you'll have keras-preprocessing 1.0.2 which is incompatible. ERROR: dlgo 0.2 has requirement numpy&lt;=1.14.5, but you'll have numpy 1.18.5 which is incompatible. ... (venv) valentin@ecomdev2:\/opt\/go$ pip3 install \"keras-preprocessing>=1.1.0\" ... ERROR: keras 2.2.2 has requirement keras-preprocessing==1.0.2, but you'll have keras-preprocessing 1.1.2 which is incompatible. ERROR: dlgo 0.2 has requirement numpy&lt;=1.14.5, but you'll have numpy 1.18.5 which is incompatible. ... (venv) valentin@ecomdev2:\/opt\/go\/code$ pip3 install \"keras==2.2.2\" ... ERROR: tensorflow 2.2.2 has requirement keras-preprocessing>=1.1.0, but you'll have keras-preprocessing 1.0.2 which is incompatible. ERROR: tensorflow 2.2.2 has requirement numpy&lt;1.19.0,>=1.16.0, but you'll have numpy 1.14.5 which is incompatible. ERROR: scipy 1.7.1 has requirement numpy&lt;1.23.0,>=1.16.5, but you'll have numpy 1.14.5 which is incompatible. ... (venv) valentin@ecomdev2:\/opt\/go\/code$ pip3 install \"numpy&lt;1.23.0,>=1.16.5\" ... ERROR: tensorflow 2.2.2 has requirement keras-preprocessing>=1.1.0, but you'll have keras-preprocessing 1.0.2 which is incompatible. ERROR: tensorflow 2.2.2 has requirement numpy&lt;1.19.0,>=1.16.0, but you'll have numpy 1.21.2 which is incompatible. ERROR: dlgo 0.2 has requirement numpy&lt;=1.14.5, but you'll have numpy 1.21.2 which is incompatible. ... <\/code><\/pre>\n<p>  \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u044f \u0441\u0442\u0440\u043e\u0438\u043b \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0435\u043a\u0442, \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438, \u0441 \u043d\u0443\u043b\u044f, \u044f \u0441\u043c\u043e\u0433 \u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u043e\u0439, \u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u043e\u0433\u043e \u0441 GitHub-\u0430 \u043c\u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044d\u0442\u043e\u0433\u043e \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c.   <\/div>\n<\/p><\/div>\n<p>  \u0412 \u0441\u0435\u0434\u044c\u043c\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u043a\u043d\u0438\u0433\u0438, \u0430\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%BC\" rel=\"nofollow noopener noreferrer\">\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c<\/a>, \u0432\u0437\u044f\u0432 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 100 \u0438\u0433\u0440 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.gokgs.com\/\" rel=\"nofollow noopener noreferrer\">KGS<\/a> \u2014 \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0434\u043b\u044f \u0438\u0433\u0440\u044b \u0432 \u0413\u043e. <a href=\"https:\/\/u-go.net\/gamerecords\/\" rel=\"nofollow noopener noreferrer\">\u0417\u0430\u043f\u0438\u0441\u0438<\/a> \u0432\u0435\u0434\u0443\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Smart_Game_Format\" rel=\"nofollow noopener noreferrer\">SGF<\/a>, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 2001 \u0433\u043e\u0434\u0430 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043f\u0430\u0440\u0442\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0434\u0438\u043d \u0438\u0437 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0438\u043c\u0435\u043b 7-\u043e\u0439 \u0434\u0430\u043d \u0438 \u0432\u044b\u0448\u0435 \u0438\u043b\u0438 \u043e\u0431\u0430 \u0438\u0433\u0440\u043e\u043a\u0430 \u0438\u043c\u0435\u043b\u0438 6-\u043e\u0439 \u0434\u0430\u043d. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 <a href=\"https:\/\/demos.badukai.com\/static\/play_predict_19.html\" rel=\"nofollow noopener noreferrer\">\u0441\u0441\u044b\u043b\u043a\u0435<\/a>:<\/p>\n<p>  <a href=\"https:\/\/demos.badukai.com\/static\/play_predict_19.html\" rel=\"nofollow noopener noreferrer\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/68\/ly\/ok\/68lyokvlywithraiak9jpy4ooxg.png\" data-src=\"https:\/\/habrastorage.org\/webt\/68\/ly\/ok\/68lyokvlywithraiak9jpy4ooxg.png\"\/><\/div>\n<p><\/a><br \/>  \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u0433\u0440\u0430 \u0431\u043e\u0442\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0430\u0437\u0443\u043c\u043d\u043e. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438, \u043f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 5 \u044d\u043f\u043e\u0445, \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/github.com\/maxpumperla\/deep_learning_and_the_game_of_go\/tree\/master\/code\/checkpoints\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c<\/a> \u0441 GitHub-\u0430 \u0438 \u0441\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"https:\/\/github.com\/tensorflow\/tfjs-converter\/tree\/master\/tfjs-converter\" rel=\"nofollow noopener noreferrer\">tensorflowjs_converter<\/a>-\u0430.<\/p>\n<pre><code class=\"plaintext\">$ tensorflowjs_converter --input_format=keras small_model_epoch_5.h5 small_model_epoch_5 <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"json\">{    \"format\":\"graph-model\",    \"generatedBy\":\"2.6.0\",    \"convertedBy\":\"TensorFlow.js Converter v3.9.0\",    \"signature\":{       \"inputs\":{          \"zero_padding2d_1_input\":{             \"name\":\"zero_padding2d_1_input:0\",             \"dtype\":\"DT_FLOAT\",             \"tensorShape\":{                \"dim\":[                   {                      \"size\":\"-1\"                   },                   {                      \"size\":\"1\"                   },                   {                      \"size\":\"19\"                   },                   {                      \"size\":\"19\"                   }                ]             }          }       },       \"outputs\":{          \"dense_2\":{             \"name\":\"Identity:0\",             \"dtype\":\"DT_FLOAT\",             \"tensorShape\":{                \"dim\":[                   {                      \"size\":\"-1\"                   },                   {                      \"size\":\"361\"                   }                ]             }          }       }    },    \"modelTopology\":{       \"node\":[          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_1\/Pad\/paddings\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_INT32\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_INT32\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"4\"                            },                            {                               \"size\":\"2\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_1\/Conv2D\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_FLOAT\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"7\"                            },                            {                               \"size\":\"7\"                            },                            {                               \"size\":\"1\"                            },                            {                               \"size\":\"48\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_1\/BiasAdd\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"48\"                            }                         ]                      }                   }                },                \"dtype\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_2\/Pad\/paddings\",             \"op\":\"Const\",             \"attr\":{                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_INT32\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"4\"                            },                            {                               \"size\":\"2\"                            }                         ]                      }                   }                },                \"dtype\":{                   \"type\":\"DT_INT32\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_2\/Conv2D\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_FLOAT\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"5\"                            },                            {                               \"size\":\"5\"                            },                            {                               \"size\":\"48\"                            },                            {                               \"size\":\"32\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_2\/BiasAdd\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"32\"                            }                         ]                      }                   }                },                \"dtype\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_3\/Pad\/paddings\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_INT32\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_INT32\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"4\"                            },                            {                               \"size\":\"2\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_3\/Conv2D\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_FLOAT\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"5\"                            },                            {                               \"size\":\"5\"                            },                            {                               \"size\":\"32\"                            },                            {                               \"size\":\"32\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_3\/BiasAdd\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"32\"                            }                         ]                      }                   }                },                \"dtype\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_4\/Pad\/paddings\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_INT32\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_INT32\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"4\"                            },                            {                               \"size\":\"2\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_4\/Conv2D\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"5\"                            },                            {                               \"size\":\"5\"                            },                            {                               \"size\":\"32\"                            },                            {                               \"size\":\"32\"                            }                         ]                      }                   }                },                \"dtype\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_4\/BiasAdd\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_FLOAT\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"32\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/flatten_1\/Const\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_INT32\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_INT32\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"2\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/dense_1\/MatMul\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_FLOAT\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"11552\"                            },                            {                               \"size\":\"512\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/dense_1\/BiasAdd\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"512\"                            }                         ]                      }                   }                },                \"dtype\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/dense_2\/MatMul\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_FLOAT\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"512\"                            },                            {                               \"size\":\"361\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/dense_2\/BiasAdd\/ReadVariableOp\",             \"op\":\"Const\",             \"attr\":{                \"dtype\":{                   \"type\":\"DT_FLOAT\"                },                \"value\":{                   \"tensor\":{                      \"dtype\":\"DT_FLOAT\",                      \"tensorShape\":{                         \"dim\":[                            {                               \"size\":\"361\"                            }                         ]                      }                   }                }             }          },          {             \"name\":\"zero_padding2d_1_input\",             \"op\":\"Placeholder\",             \"attr\":{                \"shape\":{                   \"shape\":{                      \"dim\":[                         {                            \"size\":\"-1\"                         },                         {                            \"size\":\"1\"                         },                         {                            \"size\":\"19\"                         },                         {                            \"size\":\"19\"                         }                      ]                   }                },                \"dtype\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_1\/Pad\",             \"op\":\"Pad\",             \"input\":[                \"zero_padding2d_1_input\",                \"StatefulPartitionedCall\/sequential\/zero_padding2d_1\/Pad\/paddings\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"Tpaddings\":{                   \"type\":\"DT_INT32\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_1\/Conv2D\",             \"op\":\"Conv2D\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/zero_padding2d_1\/Pad\",                \"StatefulPartitionedCall\/sequential\/conv2d_1\/Conv2D\/ReadVariableOp\"             ],             \"device\":\"\/device:CPU:0\",             \"attr\":{                \"strides\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                },                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"dilations\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                },                \"padding\":{                   \"s\":\"VkFMSUQ=\"                },                \"use_cudnn_on_gpu\":{                   \"b\":true                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                },                \"explicit_paddings\":{                   \"list\":{                                         }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_1\/BiasAdd\",             \"op\":\"BiasAdd\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_1\/Conv2D\",                \"StatefulPartitionedCall\/sequential\/conv2d_1\/BiasAdd\/ReadVariableOp\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/activation_1\/Relu\",             \"op\":\"Relu\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_1\/BiasAdd\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_2\/Pad\",             \"op\":\"Pad\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/activation_1\/Relu\",                \"StatefulPartitionedCall\/sequential\/zero_padding2d_2\/Pad\/paddings\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"Tpaddings\":{                   \"type\":\"DT_INT32\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_2\/Conv2D\",             \"op\":\"Conv2D\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/zero_padding2d_2\/Pad\",                \"StatefulPartitionedCall\/sequential\/conv2d_2\/Conv2D\/ReadVariableOp\"             ],             \"device\":\"\/device:CPU:0\",             \"attr\":{                \"use_cudnn_on_gpu\":{                   \"b\":true                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                },                \"padding\":{                   \"s\":\"VkFMSUQ=\"                },                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"explicit_paddings\":{                   \"list\":{                                         }                },                \"dilations\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                },                \"strides\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_2\/BiasAdd\",             \"op\":\"BiasAdd\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_2\/Conv2D\",                \"StatefulPartitionedCall\/sequential\/conv2d_2\/BiasAdd\/ReadVariableOp\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/activation_2\/Relu\",             \"op\":\"Relu\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_2\/BiasAdd\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_3\/Pad\",             \"op\":\"Pad\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/activation_2\/Relu\",                \"StatefulPartitionedCall\/sequential\/zero_padding2d_3\/Pad\/paddings\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"Tpaddings\":{                   \"type\":\"DT_INT32\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_3\/Conv2D\",             \"op\":\"Conv2D\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/zero_padding2d_3\/Pad\",                \"StatefulPartitionedCall\/sequential\/conv2d_3\/Conv2D\/ReadVariableOp\"             ],             \"device\":\"\/device:CPU:0\",             \"attr\":{                \"dilations\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                },                \"use_cudnn_on_gpu\":{                   \"b\":true                },                \"padding\":{                   \"s\":\"VkFMSUQ=\"                },                \"strides\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                },                \"explicit_paddings\":{                   \"list\":{                                         }                },                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_3\/BiasAdd\",             \"op\":\"BiasAdd\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_3\/Conv2D\",                \"StatefulPartitionedCall\/sequential\/conv2d_3\/BiasAdd\/ReadVariableOp\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/activation_3\/Relu\",             \"op\":\"Relu\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_3\/BiasAdd\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_4\/Pad\",             \"op\":\"Pad\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/activation_3\/Relu\",                \"StatefulPartitionedCall\/sequential\/zero_padding2d_4\/Pad\/paddings\"             ],             \"attr\":{                \"Tpaddings\":{                   \"type\":\"DT_INT32\"                },                \"T\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_4\/Conv2D\",             \"op\":\"Conv2D\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/zero_padding2d_4\/Pad\",                \"StatefulPartitionedCall\/sequential\/conv2d_4\/Conv2D\/ReadVariableOp\"             ],             \"device\":\"\/device:CPU:0\",             \"attr\":{                \"padding\":{                   \"s\":\"VkFMSUQ=\"                },                \"dilations\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                },                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                },                \"explicit_paddings\":{                   \"list\":{                                         }                },                \"strides\":{                   \"list\":{                      \"i\":[                         \"1\",                         \"1\",                         \"1\",                         \"1\"                      ]                   }                },                \"use_cudnn_on_gpu\":{                   \"b\":true                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_4\/BiasAdd\",             \"op\":\"BiasAdd\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_4\/Conv2D\",                \"StatefulPartitionedCall\/sequential\/conv2d_4\/BiasAdd\/ReadVariableOp\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"data_format\":{                   \"s\":\"TkNIVw==\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/activation_4\/Relu\",             \"op\":\"Relu\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/conv2d_4\/BiasAdd\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/flatten_1\/Reshape\",             \"op\":\"Reshape\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/activation_4\/Relu\",                \"StatefulPartitionedCall\/sequential\/flatten_1\/Const\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"Tshape\":{                   \"type\":\"DT_INT32\"                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/activation_5\/Relu\",             \"op\":\"_FusedMatMul\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/flatten_1\/Reshape\",                \"StatefulPartitionedCall\/sequential\/dense_1\/MatMul\/ReadVariableOp\",                \"StatefulPartitionedCall\/sequential\/dense_1\/BiasAdd\/ReadVariableOp\"             ],             \"device\":\"\/device:CPU:0\",             \"attr\":{                \"num_args\":{                   \"i\":\"1\"                },                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"fused_ops\":{                   \"list\":{                      \"s\":[                         \"Qmlhc0FkZA==\",                         \"UmVsdQ==\"                      ]                   }                },                \"transpose_a\":{                   \"b\":false                },                \"epsilon\":{                   \"f\":0.0                },                \"transpose_b\":{                   \"b\":false                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/dense_2\/BiasAdd\",             \"op\":\"_FusedMatMul\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/activation_5\/Relu\",                \"StatefulPartitionedCall\/sequential\/dense_2\/MatMul\/ReadVariableOp\",                \"StatefulPartitionedCall\/sequential\/dense_2\/BiasAdd\/ReadVariableOp\"             ],             \"device\":\"\/device:CPU:0\",             \"attr\":{                \"epsilon\":{                   \"f\":0.0                },                \"num_args\":{                   \"i\":\"1\"                },                \"T\":{                   \"type\":\"DT_FLOAT\"                },                \"transpose_a\":{                   \"b\":false                },                \"transpose_b\":{                   \"b\":false                },                \"fused_ops\":{                   \"list\":{                      \"s\":[                         \"Qmlhc0FkZA==\"                      ]                   }                }             }          },          {             \"name\":\"StatefulPartitionedCall\/sequential\/dense_2\/Softmax\",             \"op\":\"Softmax\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/dense_2\/BiasAdd\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                }             }          },          {             \"name\":\"Identity\",             \"op\":\"Identity\",             \"input\":[                \"StatefulPartitionedCall\/sequential\/dense_2\/Softmax\"             ],             \"attr\":{                \"T\":{                   \"type\":\"DT_FLOAT\"                }             }          }       ],       \"library\":{                 },       \"versions\":{          \"producer\":808       }    },    \"weightsManifest\":[       {          \"paths\":[             \"group1-shard1of6.bin\",             \"group1-shard2of6.bin\",             \"group1-shard3of6.bin\",             \"group1-shard4of6.bin\",             \"group1-shard5of6.bin\",             \"group1-shard6of6.bin\"          ],          \"weights\":[             {                \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_1\/Pad\/paddings\",                \"shape\":[                   4,                   2                ],                \"dtype\":\"int32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_1\/Conv2D\/ReadVariableOp\",                \"shape\":[                   7,                   7,                   1,                   48                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_1\/BiasAdd\/ReadVariableOp\",                \"shape\":[                   48                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_2\/Pad\/paddings\",                \"shape\":[                   4,                   2                ],                \"dtype\":\"int32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_2\/Conv2D\/ReadVariableOp\",                \"shape\":[                   5,                   5,                   48,                   32                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_2\/BiasAdd\/ReadVariableOp\",                \"shape\":[                   32                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_3\/Pad\/paddings\",                \"shape\":[                   4,                   2                ],                \"dtype\":\"int32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_3\/Conv2D\/ReadVariableOp\",                \"shape\":[                   5,                   5,                   32,                   32                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_3\/BiasAdd\/ReadVariableOp\",                \"shape\":[                   32                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/zero_padding2d_4\/Pad\/paddings\",                \"shape\":[                   4,                   2                ],                \"dtype\":\"int32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_4\/Conv2D\/ReadVariableOp\",                \"shape\":[                   5,                   5,                   32,                   32                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/conv2d_4\/BiasAdd\/ReadVariableOp\",                \"shape\":[                   32                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/flatten_1\/Const\",                \"shape\":[                   2                ],                \"dtype\":\"int32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/dense_1\/MatMul\/ReadVariableOp\",                \"shape\":[                   11552,                   512                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/dense_1\/BiasAdd\/ReadVariableOp\",                \"shape\":[                   512                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/dense_2\/MatMul\/ReadVariableOp\",                \"shape\":[                   512,                   361                ],                \"dtype\":\"float32\"             },             {                \"name\":\"StatefulPartitionedCall\/sequential\/dense_2\/BiasAdd\/ReadVariableOp\",                \"shape\":[                   361                ],                \"dtype\":\"float32\"             }          ]       }    ] }<\/code><\/pre>\n<\/div><\/div>\n<p>  \u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0441 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0443\u0436\u0435 \u0432 <a href=\"https:\/\/www.tensorflow.org\/js\" rel=\"nofollow noopener noreferrer\">TensorFlow.js<\/a>, \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u043b\u0438\u0431\u043e, \u0441 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438 \u0432 <a href=\"https:\/\/nodejs.org\/en\/\" rel=\"nofollow noopener noreferrer\">Node.js<\/a>.<\/p>\n<pre><code class=\"javascript\">const tf = require('@tensorflow\/tfjs');  model = await tf.loadLayersModel('https:\/\/games.dtco.ru\/model\/model.json');  board = new Float32Array(19 * 19); const shape = [1, 1, 19, 19]; const d = tf.tensor4d(board, shape, 'float32');  const p = await model.predict(d); const x = await p.data();  d.dispose(); p.dispose(); <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c, \u043a\u0430\u043a \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043d\u0435\u043e\u043f\u044b\u0442\u043d\u044b\u0439, \u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0442\u0443\u043f\u0438\u043b \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c\u044e \u0442\u0435\u043d\u0437\u043e\u0440\u0430 \u0441 \u0432\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u043e\u0441\u043e\u043a \u0437\u0430 \u0440\u0430\u0437. \u0412\u0442\u043e\u0440\u0430\u044f \u043f\u043e \u0441\u0447\u0451\u0442\u0443 \u0435\u0434\u0438\u043d\u0438\u0447\u043a\u0430 \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0451\u0432 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0431 \u044d\u0442\u043e\u043c \u044f \u0435\u0449\u0451 \u0441\u043a\u0430\u0436\u0443 \u043f\u043e\u0437\u0436\u0435, \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0436\u0435, \u043c\u043e\u0434\u0435\u043b\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: \u0441\u0432\u043e\u0438 \u043a\u0430\u043c\u043d\u0438 \u043d\u0430 \u0434\u043e\u0441\u043a\u0435 \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f 1, \u043a\u0430\u043c\u043d\u0438 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 -1, \u0430 \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u0443\u043d\u043a\u0442\u044b 0. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 361 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (\u0441\u043b\u0435\u0432\u0430-\u043d\u0430\u043f\u0440\u0430\u0432\u043e \u0438 \u0441\u0432\u0435\u0440\u0445\u0443-\u0432\u043d\u0438\u0437 \u043f\u043e \u0434\u043e\u0441\u043a\u0435), \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0445\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u043f\u0443\u043d\u043a\u0442.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 dispose<\/b>                         <\/p>\n<div class=\"spoiler_text\">Tensorflow.js \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 <a href=\"https:\/\/www.tensorflow.org\/js\/guide\/platform_environment\" rel=\"nofollow noopener noreferrer\">\u0431\u0430\u043a\u0435\u043d\u0434\u044b<\/a>, \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0432 \u043f\u043b\u0430\u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u2014 &#8216;cpu&#8217;, \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u0441\u0430\u043c\u044b\u0439 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439. \u0412\u0441\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0451\u043c\u043a\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u0451\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e JavaScript-\u043e\u043c. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0431\u044b\u0441\u0442\u0440\u0435\u0435 &#8216;wasm&#8217;, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439:<\/p>\n<pre><code class=\"javascript\">const URL = 'https:\/\/games.dtco.ru\/model\/model.json';  const tf = require('@tensorflow\/tfjs');  const wasm = require('@tensorflow\/tfjs-backend-wasm');  await tf.enableProdMode(); await tf.setBackend('wasm');  model = await tf.loadLayersModel(URL); console.log(tf.getBackend()); <\/code><\/pre>\n<p>  \u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 &#8212;experimental-worker \u0432 <a href=\"https:\/\/github.com\/GlukKazan\/GoBot\/blob\/master\/package.json\" rel=\"nofollow noopener noreferrer\">package.json<\/a>. \u041f\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443, \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u0438 Node.js, \u043d\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u043d\u0430 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e \u043a\u0440\u0443\u0442\u0438\u043b\u043e\u0441\u044c \u0438 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u043f\u0430\u0434\u0435\u043d\u0438\u0435\u043c. \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0431\u0430\u043a\u0435\u043d\u0434 \u00abwasm\u00bb \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0435\u0431\u044f \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043b, \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u0442\u0430\u043b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c, \u0437\u0430 300 \u043c\u0441, \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u0441\u0435\u043a\u0443\u043d\u0434.<\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u0431\u0430\u043a\u0435\u043d\u0434\u044b \u043f\u043e\u0449\u0443\u043f\u0430\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e. \u0418\u043c\u0435\u043d\u043d\u043e \u0441 \u044d\u0442\u0438\u043c\u0438 \u0431\u0430\u043a\u0435\u043d\u0434\u0430\u043c\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0435\u0441\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b WebGL, \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 JavaScript \u043d\u0435 \u0443\u043c\u0435\u0435\u0442.  <\/div>\n<\/p><\/div>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, <a href=\"https:\/\/github.com\/GlukKazan\/GoBot\" rel=\"nofollow noopener noreferrer\">\u0431\u043e\u0442<\/a> \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0411\u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u0445\u043e\u0434, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439, \u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u0431\u044b\u043b\u0438 \u0443 \u044d\u0442\u043e\u0433\u043e \u0445\u043e\u0434\u0430, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043b\u0435\u0437\u0442\u044c \u0432 \u043b\u043e\u0433. \u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f \u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  <a href=\"https:\/\/dagazproject.github.io\/go\/go-19x19-advisor.htm\" rel=\"nofollow noopener noreferrer\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qv\/nw\/f-\/qvnwf-8tsfob0dn7t1nbspqt5mq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/qv\/nw\/f-\/qvnwf-8tsfob0dn7t1nbspqt5mq.png\"\/><\/div>\n<p><\/a><br \/>  \u0418\u0434\u0435\u044f \u043d\u0435\u0445\u0438\u0442\u0440\u0430\u044f \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0435 \u0445\u043e\u0434\u044b \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0438\u0445 \u0432\u0441\u0435 \u0441\u043a\u043e\u043f\u043e\u043c \u0432 UI, \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041d\u0430 \u043f\u0443\u0441\u0442\u043e\u0439 \u0434\u043e\u0441\u043a\u0435 (\u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043f\u043e <a href=\"https:\/\/dagazproject.github.io\/go\/go-19x19-advisor.htm\" rel=\"nofollow noopener noreferrer\">\u0441\u0441\u044b\u043b\u043a\u0435<\/a> \u043d\u0430\u0434\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c) \u0432\u0438\u0434\u0438\u043c \u043e\u0434\u043d\u0443 \u0437\u0432\u0435\u0437\u0434\u0443 (\u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435), \u0447\u0442\u043e \u043d\u0430\u0432\u043e\u0434\u0438\u0442 \u043d\u0430 \u043c\u044b\u0441\u043b\u0438. \u0414\u043e\u0441\u043a\u0430-\u0442\u043e \u0443 \u043d\u0430\u0441 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0430\u044f!<\/p>\n<h3>\u041a\u0440\u0443\u0447\u0443-\u0432\u0435\u0440\u0447\u0443, \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c \u0445\u043e\u0447\u0443<\/h3>\n<p>  \u0425\u043e\u0434 \u0432 \u043f\u0440\u0430\u0432\u044b\u0439 \u0432\u0435\u0440\u0445\u043d\u0438\u0439 \u0437\u0432\u0451\u0437\u0434\u043d\u044b\u0439 \u043f\u0443\u043d\u043a\u0442 (&#171;<a href=\"http:\/\/go-igo.ru\/theory\/18kudoc\/angular-points\/angular-points3.html\" rel=\"nofollow noopener noreferrer\">\u0445\u043e\u0441\u0438<\/a>&#171;), \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438, \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c. \u0418\u0433\u0440\u0430\u044f \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u0443 \u043e\u043f\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u00ab\u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0435\u0440\u0434\u0446\u0435\u00bb, \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0433\u0440\u043e\u043a \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0451 \u0443\u0432\u0430\u0436\u0435\u043d\u0438\u0435. \u0421\u0435\u0440\u0432\u0435\u0440 KGS \u2014 \u044d\u0442\u043e, \u043d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u043e, \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u044e\u0442\u0441\u044f. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043c\u0438\u043c\u043e \u00ab\u0445\u043e\u0441\u0438\u00bb, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c &#171;<a href=\"http:\/\/go-igo.ru\/theory\/18kudoc\/angular-points\/angular-points4.html\" rel=\"nofollow noopener noreferrer\">\u043a\u043e\u043c\u043e\u043a\u0443<\/a>&#171;, &#171;<a href=\"http:\/\/go-igo.ru\/theory\/18kudoc\/angular-points\/angular-points5.html\" rel=\"nofollow noopener noreferrer\">\u0442\u0430\u043a\u0430\u043c\u043e\u043a\u0443<\/a>&#171;, &#171;<a href=\"http:\/\/go-igo.ru\/theory\/18kudoc\/angular-points\/angular-points2.html\" rel=\"nofollow noopener noreferrer\">\u0441\u0430\u043d-\u0441\u0430\u043d<\/a>&#187; \u0438 &#171;<a href=\"http:\/\/go-igo.ru\/theory\/18kudoc\/angular-points\/angular-points6.html\" rel=\"nofollow noopener noreferrer\">\u043c\u043e\u043a\u0443\u0445\u0430\u0434\u0437\u0443\u0441\u0438<\/a>&#171;, \u043d\u043e \u0437\u0434\u0435\u0441\u044c, \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0441\u0432\u043e\u044e \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0441\u044b\u0433\u0440\u0430\u043b\u043e \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0430\u043b\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0442\u0438\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u044b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">const SIZE = 19;  function flipX(pos) {     const x = pos % SIZE;     pos -= x;     return pos + (SIZE - x - 1); }  function flipY(pos) {     const y = (pos \/ SIZE) | 0;     pos -= y * SIZE;     return (SIZE - y - 1) * SIZE + pos; }  function toRight(pos) {     const x = pos % SIZE;     const y = (pos \/ SIZE) | 0;     return x * SIZE + (SIZE - y - 1); }  function toLeft(pos) {     const x = pos % SIZE;     const y = (pos \/ SIZE) | 0;     return (SIZE - x - 1) * SIZE + y; } <\/code><\/pre>\n<\/div><\/div>\n<p>  \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0432\u044b\u0434\u0430\u0432\u0430\u043b\u0430 \u0431\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439, \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438\u043b\u0438 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043e\u0442\u0432\u0435\u0442, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u043a\u0438, \u043d\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u0430. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438\u043b\u0438 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u043a\u0438 \u0441\u0435\u0442\u044c \u0432\u044b\u0434\u0430\u0451\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0442\u0432\u0435\u0442, \u0438\u0437 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0435\u0439 \u0445\u043e\u0434 \u0442\u0430\u043a \u0436\u0435 \u0445\u043e\u0440\u043e\u0448 \u043a\u0430\u043a \u0438 \u0445\u043e\u0434, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438. \u042d\u0442\u043e \u0434\u0430\u0451\u0442 \u043d\u0430\u043c 8 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0434\u043e\u0441\u043a\u0438 \u2014 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u044e. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043f\u0440\u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043a\u0430\u043c\u043d\u0435\u0439, \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c (\u0442\u0430\u043a, \u0434\u043b\u044f \u043f\u0443\u0441\u0442\u043e\u0439 \u0434\u043e\u0441\u043a\u0438, \u0432\u0441\u0435 8 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442). <\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u0413\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e: \u00ab\u043b\u0443\u0447\u0448\u0438\u0439 \u0445\u043e\u0434 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 \u2014 \u044d\u0442\u043e \u0438 \u0442\u0432\u043e\u0439 \u043b\u0443\u0447\u0448\u0438\u0439 \u0445\u043e\u0434\u00bb, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430, \u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0430\u0441\u0442\u043e. \u0418\u0437\u043c\u0435\u043d\u044f\u044f \u0437\u043d\u0430\u043a \u0432 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043a\u0430\u043c\u043d\u0435\u0439, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0435\u0449\u0451 8 \u043f\u043e\u0437\u0438\u0446\u0438\u0439. \u0427\u0442\u043e\u0431\u044b \u043a\u0430\u043a-\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u044d\u0442\u0438 \u0445\u043e\u0434\u044b \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0445, \u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e \u0438\u0445 \u043d\u0430 \u0434\u043e\u0441\u043a\u0435 \u0434\u0440\u0443\u0433\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u043c. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0435 \u0445\u043e\u0434\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043a\u0440\u0443\u043f\u043d\u044b\u043c\u0438 \u0437\u0432\u0451\u0437\u0434\u0430\u043c\u0438, \u043c\u0435\u043d\u0435\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0435 \u043c\u0435\u043b\u043a\u0438\u043c\u0438:<\/p>\n<p>  <a href=\"https:\/\/dagazproject.github.io\/go\/go-19x19-advisor-board.htm?turn=1;&amp;setup=991\/991\/95b4\/3w93b2\/991\/991\/991\/991\/991\/991\/991\/991\/991\/991\/3w92b3\/94w5\/97b2\/991\/991\" rel=\"nofollow noopener noreferrer\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ub\/5y\/if\/ub5yifprm_tow7lvx_klndy5paw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ub\/5y\/if\/ub5yifprm_tow7lvx_klndy5paw.png\"\/><\/div>\n<p><\/a><br \/>  \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c. \u0421\u0432\u043e\u0435\u0439 \u0438\u0433\u0440\u043e\u0439 \u0431\u043e\u0442, \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0438\u0433\u0440\u043e\u043a\u0430 \u0441 \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u0435\u0439, \u043d\u043e \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u043d\u043e\u0433\u043e. \u0414\u0435\u0439\u0441\u0442\u0432\u0443\u044f \u043f\u043e \u043d\u0430\u0438\u0442\u0438\u044e, \u043e\u043d \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430 \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443, \u043d\u0435 \u0434\u043e\u0432\u043e\u0434\u044f \u043d\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u0434\u043e \u043a\u043e\u043d\u0446\u0430. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0430, \u043e\u043d\u0430 \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0434, <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%BE#%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%89%D1%91%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d\u043d\u044b\u0439<\/a> \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0438\u0433\u0440\u044b \u2014 \u0441\u0430\u043c\u043e\u0443\u0431\u0438\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430 \u043f\u0443\u043d\u043a\u0442 \u0443\u0436\u0435 \u0437\u0430\u043d\u044f\u0442\u044b\u0439 \u043a\u0430\u043c\u043d\u0435\u043c. \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE_%D0%BA%D0%BE\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u041a\u043e<\/a>, \u0442\u043e \u0434\u043b\u044f \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u043e\u0442\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u2014 \u043f\u0443\u043d\u043a\u0442, \u0445\u043e\u0434 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d.<\/p>\n<p>  \u0425\u043e\u0440\u043e\u0448\u0438\u0435 \u0445\u043e\u0434\u044b \u0432 \u0413\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u00ab\u0431\u043e\u043b\u044c\u0448\u0438\u0435\u00bb \u0438 \u00ab\u0441\u0440\u043e\u0447\u043d\u044b\u0435\u00bb. \u0411\u043e\u043b\u044c\u0448\u0438\u0435 \u0445\u043e\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044e, \u0441\u0440\u043e\u0447\u043d\u044b\u0435 \u2014 \u0437\u0430\u0449\u0438\u0449\u0430\u044e\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u043a\u0430 \u043e\u0442 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0438 \u0440\u0430\u0437\u0440\u0443\u0448\u0435\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u0433\u0440\u043e\u043c\u043d\u044b\u043c \u0441\u0447\u0451\u0442\u043e\u043c, \u0441\u0440\u043e\u0447\u043d\u044b\u0435 \u0445\u043e\u0434\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0435\u0436\u0434\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445. \u0418 \u043a\u0430\u043a \u0440\u0430\u0437 \u0441 \u044d\u0442\u0438\u043c \u0443 \u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0411\u043e\u043b\u044c\u0448\u0438\u0435 \u0445\u043e\u0434\u044b \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u043d\u0430 \u044f\u0432\u043d\u044b\u0435 \u0443\u0433\u0440\u043e\u0437\u044b \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442. \u041f\u043e\u043c\u0438\u043c\u043e \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u0438, \u0431\u043e\u0442\u0443 \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u044e\u0442 \u00ab\u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u044b\u00bb. \u0427\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438, \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0437\u0435\u043b\u0451\u043d\u044b\u0435 \u0437\u0432\u0451\u0437\u0434\u044b. \u041a\u0440\u0443\u043f\u043d\u0430\u044f \u0437\u0435\u043b\u0451\u043d\u0430\u044f \u0437\u0432\u0435\u0437\u0434\u0430, \u044d\u0442\u043e \u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043e\u0442 \u0432\u044b\u0431\u0435\u0440\u0435\u0442, \u0434\u0430\u0436\u0435 \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u043e\u0442 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">function analyze(board) {     let m = []; let r = []; let done = [];     for (let p = 0; p &lt; SIZE * SIZE; p++) {         if (!isEmpty(board[p])) continue;         if (_.indexOf(done, p) >= 0) continue;         let g = [p]; let c = null; let e = [];         for (let i = 0; i &lt; g.length; i++) {             m[ g[i] ] = r.length;             done.push(g[i]);             _.each([1, -1, SIZE, -SIZE], function(dir) {                 let q = navigate(g[i], dir);                 if (q &lt; 0) return;                 if (_.indexOf(g, q) >= 0) return;                 if (isEnemy(board[q])) {                     if (c === null) c = -1;                     if (isFriend(c)) c = 0;                     if (_.indexOf(e, q) &lt; 0) e.push(q);                     return;                 }                 if (isFriend(board[q])) {                     if (c === null) c = 1;                     if (isEnemy(c)) c = 0;                     if (_.indexOf(e, q) &lt; 0) e.push(q);                     return;                 }                 g.push(q);             });         }         r.push({             type:  0,             group: g,             color: c,             edge:  e         });     }     for (let p = 0; p &lt; SIZE * SIZE; p++) {         if (_.indexOf(done, p) >= 0) continue;         let f = isFriend(board[p]);         let g = [p]; let d = []; let y = []; let e = [];         for (let i = 0; i &lt; g.length; i++) {             m[ g[i] ] = r.length;             done.push(g[i]);             _.each([1, -1, SIZE, -SIZE], function(dir) {                 let q = navigate(g[i], dir);                 if (q &lt; 0) return;                 if (_.indexOf(g, q) >= 0) return;                 if (isFriend(board[q])) {                     if (!f) {                         if (_.indexOf(e, q) &lt; 0) e.push(q);                         return;                     } else {                         if (_.indexOf(g, q) &lt; 0) g.push(q);                     }                 } else if (isEnemy(board[q])) {                     if (f) {                         if (_.indexOf(e, q) &lt; 0) e.push(q);                         return;                     } else {                         if (_.indexOf(g, q) &lt; 0) g.push(q);                     }                 } else {                     if (_.indexOf(d, q) &lt; 0) d.push(q);                     let ix = m[q];                     if (_.isUndefined(ix)) return;                     if (!isEmpty(r[ix].type)) return;                     if (f) {                         if (isFriend(r[ix].color)) {                             if (_.indexOf(y, q) &lt; 0) y.push(q);                             r[ix].isEye = true;                         }                     } else {                         if (isEnemy(r[ix].color)) {                             if (_.indexOf(y, q) &lt; 0) y.push(q);                             r[ix].isEye = true;                         }                     }                 }             });         }         r.push({             type:  f ? 1 : -1,             group: g,             dame:  d,             eyes:  y,             edge:  e         });     }     return {         map: m,         res: r     } } <\/code><\/pre>\n<p>  \u041e\u043d\u0430 \u0441\u0442\u0440\u043e\u0438\u0442, \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u00ab\u043a\u0430\u0440\u0442\u0443 \u0434\u043e\u0441\u043a\u0438\u00bb, \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044f \u0435\u0451 \u043d\u0430 \u0441\u0432\u044f\u0437\u043d\u044b\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438. \u0414\u043b\u044f \u0433\u0440\u0443\u043f\u043f \u043a\u0430\u043c\u043d\u0435\u0439 \u043e\u0434\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f <a href=\"http:\/\/go-igo.ru\/dictionary-go\/dame.html\" rel=\"nofollow noopener noreferrer\">\u0434\u0430\u043c\u044d<\/a>, \u0430 \u0434\u043b\u044f \u043f\u0443\u0441\u0442\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043a\u0430\u043c\u043d\u0438. \u0415\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0443\u0441\u0442\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442 \u0441 \u043a\u0430\u043c\u043d\u044f\u043c\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430, \u043e\u043d\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f <a href=\"http:\/\/go-igo.ru\/theory\/20kudoc-d49\/where-terr.html\" rel=\"nofollow noopener noreferrer\">\u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0435\u0439<\/a>.<\/p>\n<pre><code class=\"plaintext\">0  0  0  0  0  0  0  0  0  0  0  0  0  7  0  0  0  0  0  0  0  8  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  9  1 10 10  0  0 11  0  0  0  0  0 12  0  0  0  0  0  0  0 13  2 10  0  0  0  0  0  0  0  0  0  0 14  0  0  0  0  0 13 13  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 13  0 15  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 16  0  0  0  0  0 17  0  0  0  0  0 18  0 19 19  0 20  0 16 21  0  0  0  0  0  0  0  0  0  0  0 22 23 19 24 24 25 21 21  0  0  0  0  0  0  0  0  0  0  0 22 23 23 26 26  3 27  0  0  0  0  0  0  0  0  0  0  0  0 28  4 23 23 26  3  3 29  0  0  0  0  0  0  0  0  0  0  0  0 30 29 23 23 29  3 29  0  0  0  0  0  0  0  0  0  0  0  0  0 29 29 29 29 29 29  0  0  0  0  0  0  0 31  0  0  0  0  0 32 32 29 33 33 29 34  0  0  0  0  0  0 35 36  0 37  0  0  0 38  0 33 39  5 40 40  0  0  0  0 41  0  0 42  0  0  0  0  0  0  0 39  5  5  5  0  0  0  0  0  0 42 42  0 43  0  0  0  0 44  6 45 45 45  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 46 47  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  <\/code><\/pre>\n<\/div><\/div>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u0432 \u0445\u043e\u0434 \u0438\u0434\u0443\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0431\u043e\u0442 \u0432\u0438\u0434\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0443\u043f\u043f \u043a\u0430\u043c\u043d\u0435\u0439 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 \u0432 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 &#171;<a href=\"http:\/\/go-igo.ru\/dictionary-go\/atari.html\" rel=\"nofollow noopener noreferrer\">\u0430\u0442\u0430\u0440\u0438<\/a>&#171;, \u043e\u043d \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0442\u0443 \u0438\u0437 \u043d\u0438\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c. \u0415\u0441\u043b\u0438 \u043f\u043e\u0434 \u00ab\u0430\u0442\u0430\u0440\u0438\u00bb \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u043a\u0430\u043c\u043d\u0435\u0439 \u0431\u043e\u0442\u0430, \u043e\u043d \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0430\u0441\u0442\u0438 \u0435\u0451, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0441\u0432\u043e\u0438\u043c \u0445\u043e\u0434\u043e\u043c \u043e\u043d \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e &#171;<a href=\"http:\/\/go-igo.ru\/dictionary-go\/dame.html\" rel=\"nofollow noopener noreferrer\">\u0434\u0430\u043c\u044d<\/a>&#187; \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u044e. \u0411\u043e\u0442 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u0430\u043c\u043d\u044f\u043c\u0438 <a href=\"https:\/\/www.pandanet.co.jp\/English\/learning_go\/learning_go_7.html\" rel=\"nofollow noopener noreferrer\">\u0433\u043b\u0430\u0437\u0430<\/a> \u0441\u0432\u043e\u0438\u0445 \u0433\u0440\u0443\u043f\u043f \u0438, \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0443 \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u00ab\u0430\u0442\u0430\u0440\u0438\u00bb. \u0412\u043e\u043e\u0431\u0449\u0435, \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0440 \u0434\u043b\u044f \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430. \u041c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 &#171;<a href=\"http:\/\/go-igo.ru\/dictionary-go\/geta.html\" rel=\"nofollow noopener noreferrer\">\u0433\u044d\u0442\u0430<\/a>&#187; \u0438 &#171;<a href=\"https:\/\/www.sente.ru\/2007\/08\/sityo\/\" rel=\"nofollow noopener noreferrer\">\u0441\u0438\u0442\u0451<\/a>&#171;, \u043f\u0440\u043e\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c &#171;<a href=\"https:\/\/sport.wikireading.ru\/7414\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u0449\u0451\u043b\u043a\u0438<\/a>&#171;, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0438 \u043f\u043b\u043e\u0445\u0438\u0435 \u0444\u043e\u0440\u043c\u044b. \u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u044c <a href=\"https:\/\/github.com\/GlukKazan\/Dagaz\/blob\/master\/tests\/gobot-test.js\" rel=\"nofollow noopener noreferrer\">\u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430\u043c\u0438<\/a>. \u0421\u0435\u0440\u044c\u0451\u0437\u043d\u043e, \u043e\u043d\u0438 <a href=\"https:\/\/github.com\/GlukKazan\/Dagaz\/commits\/master\/tests\/gobot.js\" rel=\"nofollow noopener noreferrer\">\u0443\u0436\u0435<\/a> \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u043c\u043d\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0445 \u0431\u0430\u0433\u043e\u0432! <\/p>\n<h3>\u0410\u043f\u043f\u0435\u0442\u0438\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0435\u0434\u044b<\/h3>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0438\u0437 <a href=\"https:\/\/keras.io\/\" rel=\"nofollow noopener noreferrer\">Keras<\/a>, \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"https:\/\/js.tensorflow.org\/api\/latest\/#loadLayersModel\" rel=\"nofollow noopener noreferrer\">loadLayersModel<\/a>, \u043d\u043e TensorFlow.js \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0441 <a href=\"https:\/\/js.tensorflow.org\/api\/latest\/#loadGraphModel\" rel=\"nofollow noopener noreferrer\">GraphModel<\/a> \u0442\u043e\u0436\u0435. \u0412 \u0447\u0451\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430? GraphModel \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0417\u0430\u0442\u043e LayersModel \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0436\u0435, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u044f \u0443\u0437\u043d\u0430\u043b \u043e\u0431 \u044d\u0442\u043e\u043c. \u0412\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0442\u044b\u043a\u0430 (\u0430 \u0442\u0430\u043a\u0436\u0435 \u0447\u0442\u0435\u043d\u0438\u044f <a href=\"https:\/\/www.tensorflow.org\/js\/tutorials\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>) \u0438 \u0432\u043e\u0442 \u043a \u0447\u0435\u043c\u0443 \u044f \u043f\u0440\u0438\u0448\u0451\u043b:<\/p>\n<pre><code class=\"javascript\">board = new Float32Array(N * 19 * 19); ... const xshape = [N, 1, 19, 19]; const xs = tf.tensor4d(board, xshape, 'float32'); const yshape = [N, 19 * 19]; const ys =  tf.tensor2d(y, yshape, 'float32'); <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u044f \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e \u0441\u0440\u0430\u0437\u0443 N \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043a\u0430\u043c\u043d\u0435\u0439 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0438\u043c N \u043b\u0443\u0447\u0448\u0438\u0445 \u0445\u043e\u0434\u043e\u0432, \u0432 \u0442\u043e\u043c \u0436\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0445 \u043e\u0442\u0434\u0430\u0451\u0442 \u043c\u043e\u0434\u0435\u043b\u044c. \u0413\u0434\u0435 \u0432\u0437\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f? \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c <a href=\"https:\/\/games.dtco.ru\/launch\/17\/2\" rel=\"nofollow noopener noreferrer\">\u0441\u0435\u0440\u0432\u0435\u0440<\/a>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043b\u044e\u0434\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0433\u0440\u0430\u0442\u044c <a href=\"https:\/\/dagazproject.github.io\/go\/go-19x19-advisor-board.htm\" rel=\"nofollow noopener noreferrer\">\u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/dagazproject.github.io\/go\/go-19x19-advisor.htm\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u043e\u0442\u0438\u0432 \u0431\u043e\u0442\u0430<\/a>. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u043c\u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0445\u043e\u0434\u044b \u0432 \u0411\u0414, \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438. \u041b\u0430\u0434\u043d\u043e-\u043b\u0430\u0434\u043d\u043e, \u0435\u0449\u0451 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c <a href=\"https:\/\/u-go.net\/gamerecords\/\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u0433\u0440<\/a> c KGS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u041c\u0430\u043a\u0441 \u041f\u0430\u043c\u043f\u0435\u0440\u043b\u0430 \u0438 \u041a\u0435\u0432\u0438\u043d \u0424\u0435\u0440\u0433\u044e\u0441\u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0441\u0435\u0433\u043e 100 \u043f\u0430\u0440\u0442\u0438\u0439 (\u0438\u0445 \u0442\u0430\u043c \u043d\u0430\u043c\u043d\u043e\u0433\u043e, \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435). \u0412 \u043e\u0431\u0449\u0435\u043c, \u044f \u0441\u0434\u0435\u043b\u0430\u043b <a href=\"https:\/\/github.com\/GlukKazan\/SGFLoader\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a<\/a>, \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Smart_Game_Format\" rel=\"nofollow noopener noreferrer\">SGF<\/a>-\u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u0442\u0430.<\/p>\n<pre><code class=\"javascript\">const model = await tf.loadLayersModel(URL); model.compile({optimizer: 'sgd', loss: 'categoricalCrossentropy', metrics: ['accuracy']}); <\/code><\/pre>\n<p>  \u0425\u043e\u0442\u044f \u0432 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0439 <a href=\"https:\/\/games.dtco.ru\/model\/model.json\" rel=\"nofollow noopener noreferrer\">\u043c\u043e\u0434\u0435\u043b\u0438<\/a> \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0439 \u00abcompile\u00bb, \u0434\u0435\u043b\u043e \u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0436\u0438\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0432\u0435\u0449\u0438 \u0432 Keras \u0438 Tensorflow.js \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Tensorflow \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0438\u0439 <a href=\"https:\/\/www.tensorflow.org\/js\/guide\/layers_for_keras_users\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442<\/a> \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443.<\/p>\n<pre><code class=\"javascript\">const h = await model.fit(xs, ys, {     batchSize: 100,     epochs: 3,     validationSplit: 0.1 });     xs.dispose(); ys.dispose(); <\/code><\/pre>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c, \u043e \u0447\u0451\u043c \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u0438\u0442\u044c\u0441\u044f, \u0441\u0442\u0430\u043b\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0417\u0434\u0435\u0441\u044c \u043c\u0435\u043d\u044f \u043f\u043e\u0434\u0441\u0442\u0435\u0440\u0435\u0433\u0430\u043b\u0430 <a href=\"https:\/\/github.com\/tensorflow\/tfjs\/issues\/723\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u0441\u0430\u0434\u0430<\/a>. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e Tensorflow.js \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0430 \u043d\u0435 \u0432 Node.js, \u043d\u043e \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0441\u043a \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, Google \u043f\u043e\u043c\u043e\u0433 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439:<\/p>\n<pre><code class=\"javascript\">const {nodeFileSystemRouter} = require('@tensorflow\/tfjs-node\/dist\/io\/file_system'); ... tf.io.registerLoadRouter(nodeFileSystemRouter); tf.io.registerSaveRouter(nodeFileSystemRouter); ... await model.save(`file:\/\/\/tmp\/${savePath}`); <\/code><\/pre>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0440\u0430\u0431\u043e\u0442\u044b \u0437\u0434\u0435\u0441\u044c \u0435\u0449\u0451 \u043d\u0435\u043f\u043e\u0447\u0430\u0442\u044b\u0439 \u043a\u0440\u0430\u0439. \u041c\u043e\u0436\u043d\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438 \u0431\u0430\u0442\u0447\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u044d\u043f\u043e\u0445. \u0427\u0430\u0441\u0442\u044c \u0441\u043b\u043e\u0451\u0432 \u043c\u043e\u0436\u043d\u043e \u00ab\u0437\u0430\u043c\u043e\u0440\u043e\u0437\u0438\u0442\u044c\u00bb, \u0447\u0442\u043e\u0431\u044b \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f (\u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0434\u043b\u044f \u0441\u0432\u0451\u0440\u0442\u043e\u0447\u043d\u044b\u0445 \u0441\u043b\u043e\u0451\u0432 \u043c\u043e\u0434\u0435\u043b\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0432\u0441\u044e \u0447\u0435\u0440\u043d\u043e\u0432\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u00ab\u0445\u043e\u0440\u043e\u0448\u0438\u0445\u00bb \u0438 \u00ab\u043f\u043b\u043e\u0445\u0438\u0445\u00bb \u0444\u043e\u0440\u043c). \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0438 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u043e\u0451\u0432 \u0437\u0430\u043c\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u2014 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432. \u0414\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0435 \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u2014 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u043a\u0430\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434. \u041f\u043e\u0437\u0438\u0446\u0438\u0438, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0442\u0438\u0438, \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430. \u0412\u044b\u0431\u043e\u0440 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0435\u0440\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043b\u043b\u044e\u0437\u0438\u044e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u043a\u0430 \u0447\u0442\u043e, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">{   \"validationData\":null,   \"params\":   {     \"epochs\":3,     \"initialEpoch\":0,     \"samples\":900,     \"steps\":null,     \"batchSize\":100,     \"verbose\":1,     \"doValidation\":true,     \"metrics\":     [       \"loss\",       \"acc\",       \"val_loss\",       \"val_acc\"     ]   } ,   \"epoch\":   [     0,     1,     2   ] ,   \"history\":   {     \"val_loss\":     [       6.965572357177734,       6.191959381103516,       6.181119918823242     ] ,     \"val_acc\":     [       0.019999999552965164,       0.029999999329447746,       0.019999999552965164     ] ,     \"loss\":     [       9.069977760314941,       5.387154579162598,       4.876873970031738     ] ,     \"acc\":     [       0.018888888880610466,       0.057777777314186096,       0.09222222119569778     ]   } }<\/code><\/pre>\n<\/div><\/div>\n<p>  \u041d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u044d\u0442\u043e\u0439 \u0442\u044b\u0441\u044f\u0447\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u0435\u0435 6 \u043c\u0438\u043d\u0443\u0442, \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u00abwasm\u00bb-\u0431\u0430\u043a\u0435\u043d\u0434\u0430. \u041c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u0442\u043e\u0442 \u0432\u0438\u0434 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0432\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h3>\n<p>  \u0425\u043e\u0442\u044f \u0438\u0433\u0440\u0430 \u0431\u043e\u0442\u0430 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0430\u0437\u0443\u043c\u043d\u043e\u0439, \u043e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u0430 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u0430. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u0430. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0451 \u0438\u0433\u0440\u044b \u0431\u0443\u0434\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0451 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438 \u043c\u0435\u043d\u044c\u0448\u0435. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e <a href=\"https:\/\/wiki.loginom.ru\/articles\/overtraining.html\" rel=\"nofollow noopener noreferrer\">\u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/a>. \u0411\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u043c\u043e\u0434\u0435\u043b\u0438, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u043b\u043e\u0451\u0432, \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432, \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u043e\u0447\u0438\u043c. \u0422\u0430\u043a\u0436\u0435, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e \u0431\u043e\u043b\u0435\u0435 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0439\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u044b\u0431\u043e\u0440. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043b\u043e\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li>\u0413\u0440\u0443\u043f\u043f\u044b \u0432\u0440\u0430\u0436\u0435\u0441\u043a\u0438\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0441 \u043e\u0434\u043d\u0438\u043c \u0434\u0430\u043c\u044d (\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043e\u0434\u043d\u0438\u043c \u0445\u043e\u0434\u043e\u043c)<\/li>\n<li>\u0413\u0440\u0443\u043f\u043f\u044b \u0432\u0440\u0430\u0436\u0435\u0441\u043a\u0438\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0441 \u0434\u0432\u0443\u043c\u044f \u0434\u0430\u043c\u044d<\/li>\n<li>\u0413\u0440\u0443\u043f\u043f\u044b \u0432\u0440\u0430\u0436\u0435\u0441\u043a\u0438\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0441 \u0442\u0440\u0435\u043c\u044f \u0434\u0430\u043c\u044d \u0438 \u0431\u043e\u043b\u0435\u0435<\/li>\n<li>\u0413\u0440\u0443\u043f\u043f\u044b \u0441\u0432\u043e\u0438\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0441 \u043e\u0434\u043d\u0438\u043c \u0434\u0430\u043c\u044d (\u0437\u0430\u0449\u0438\u0449\u0430\u0442\u044c \u044d\u0442\u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430, \u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e)<\/li>\n<li>\u0413\u0440\u0443\u043f\u043f\u044b \u0441\u0432\u043e\u0438\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0441 \u0434\u0432\u0443\u043c\u044f \u0434\u0430\u043c\u044d (\u0443\u0433\u0440\u043e\u0437\u0430 \u0430\u0442\u0430\u0440\u0438)<\/li>\n<li>\u0413\u0440\u0443\u043f\u043f\u044b \u0441\u0432\u043e\u0438\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0441 \u0442\u0440\u0435\u043c\u044f \u0434\u0430\u043c\u044d \u0438 \u0431\u043e\u043b\u0435\u0435 (\u043a\u0430\u043c\u043d\u0438 \u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438)<\/li>\n<li>\u041f\u0443\u043d\u043a\u0442\u044b, \u0445\u043e\u0434 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c \u041a\u043e)<\/li>\n<li>\u041f\u0443\u043d\u043a\u0442\u044b, \u0445\u043e\u0434 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u00ab\u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u044b\u00bb<\/li>\n<\/ul>\n<p>  \u0414\u0432\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0441\u043b\u043e\u044f \u2014 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438, \u0447\u0438\u0442. \u041f\u0440\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438, \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u00ab\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f\u00bb \u0432\u043e \u0432\u0441\u0451\u043c \u0441\u0430\u043c\u0430, \u043d\u043e \u044d\u0442\u043e \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b. \u0415\u0441\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0435\u0451 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c? \u0424\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/github.com\/GlukKazan\/GoBot\/blob\/master\/go.js#L113\" rel=\"nofollow noopener noreferrer\">analyze<\/a> \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0435\u0451 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442.  <\/div>\n<\/p><\/div>\n<p>  \u0414\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2014 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0438\u0433\u0440\u044b. \u0411\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u043f\u0430\u0440\u0442\u0438\u0438, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0445\u043e\u0434\u043e\u0432 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0451 \u043c\u0435\u043d\u044c\u0448\u0435, \u0430 \u00ab\u0431\u043e\u043b\u044c\u0448\u0438\u0445\u00bb \u0445\u043e\u0434\u043e\u0432 \u043d\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432\u043e\u0432\u0441\u0435. \u042d\u0442\u0430 \u0444\u0430\u0437\u0430 \u0438\u0433\u0440\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%81%D1%81%D1%8D_(%D0%B3%D0%BE)\" rel=\"nofollow noopener noreferrer\">\u0451\u0441\u044d<\/a> \u0438 \u0432 \u043d\u0435\u0439 \u0440\u0430\u0437\u044b\u0433\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0447\u043a\u0438. \u041a\u043e\u0433\u0434\u0430 \u0445\u043e\u0434\u043e\u0432 \u043d\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432\u043e\u0432\u0441\u0435, \u043e\u0434\u0438\u043d \u0438\u0437 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u00ab\u043f\u0430\u0441\u00bb \u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0445\u043e\u0434. \u0415\u0441\u043b\u0438, \u0432\u0441\u043b\u0435\u0434 \u0437\u0430 \u043d\u0438\u043c, \u00ab\u043f\u0430\u0441\u00bb \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0438 \u0435\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a, \u0438\u0433\u0440\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0444\u0430\u0437\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%92%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB_%D0%B3%D0%BE#%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D1%91%D1%82%D0%B0_%D0%BE%D1%87%D0%BA%D0%BE%D0%B2\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430 \u043e\u0447\u043a\u043e\u0432<\/a>. \u0411\u043e\u0442, \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u00ab\u043f\u0430\u0441\u00bb \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043d\u0435 \u0443\u043c\u0435\u0435\u0442, \u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0433\u043b\u0443\u043f\u044b\u0435 \u0445\u043e\u0434\u044b, \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044f \u0441\u0432\u043e\u044e \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044e. \u042d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, 362-\u043e\u0439 \u043f\u0443\u043d\u043a\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0434\u0438\u043d\u0438\u0447\u043a\u0430 \u0432 \u044d\u0442\u043e\u043c \u043f\u0443\u043d\u043a\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0445\u043e\u0434. <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0445\u043e\u0434 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0414\u0430\u0436\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0441\u0442\u0438\u0447\u0435\u043d. \u0412\u043e \u0432\u0441\u044f\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/AlphaGo\" rel=\"nofollow noopener noreferrer\">Alpha Go<\/a> \u043d\u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/AlphaGo#AlphaGo_Zero\" rel=\"nofollow noopener noreferrer\">AlphaGo Zero<\/a> \u0442\u0430\u043a \u043d\u0435 \u0434\u0435\u043b\u0430\u044e\u0442. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u0435\u0441\u0430 \u043b\u0438\u0448\u044c \u0434\u043b\u044f \u0430\u043f\u0440\u0438\u043e\u0440\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 \u0445\u043e\u0434\u043e\u0432 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438. \u0414\u0430\u043b\u0435\u0435, Alpha Go \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u00ab\u0441\u0438\u043b\u044c\u043d\u0443\u044e\u00bb \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0445\u043e\u0434\u043e\u0432 \u0438 \u00ab\u0431\u044b\u0441\u0442\u0440\u0443\u044e\u00bb \u0434\u043b\u044f \u0434\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>  \u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043d \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b <a href=\"https:\/\/en.wikipedia.org\/wiki\/Monte_Carlo_tree_search\" rel=\"nofollow noopener noreferrer\">MCTS<\/a>, \u043f\u0430\u0440\u0442\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0438\u0433\u0440\u0430\u043d\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0442\u044b\u0441\u044f\u0447\u0438 \u0440\u0430\u0437. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u044d\u0442\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u043c\u043e\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. \u0414\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0434\u043e\u0432 \u0432\u043f\u0435\u0440\u0451\u0434, \u043d\u043e \u043e\u0446\u0435\u043d\u043a\u0430 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u0413\u043e \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u0412 Alpha Go, \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0440\u0435\u0442\u044c\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u2014 \u00ab\u043e\u0446\u0435\u043d\u043a\u0438\u00bb.<\/p>\n<p>  \u0421 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0432\u0430\u0436\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c. \u041f\u043e\u043c\u0438\u043c\u043e \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u044b, \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0431\u043e\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0451 \u043f\u043e\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u0438\u043a\u0435\u0442\u0430 \u0413\u043e \u2014 \u0432\u0438\u0434\u044f \u0441\u0432\u043e\u0451 \u043d\u0435\u043c\u0438\u043d\u0443\u0435\u043c\u043e\u0435 \u043f\u043e\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0438\u0433\u0440\u043e\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u0430\u0440\u0442\u0438\u044e, \u043d\u0435 \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044f \u0431\u043e\u043b\u0435\u0435 \u043b\u0438\u0447\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044f. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u043d\u043e, \u043f\u043e\u043a\u0430 \u0435\u0449\u0451 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0431\u0435\u0434\u044b.  <\/div>\n<\/p><\/div>\n<p>  \u0422\u0430\u043a\u0436\u0435, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0435 \u00ab\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c\u00bb \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e \u043d\u0430\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0438\u0433\u0440\u0430\u043b\u0430 \u043b\u0443\u0447\u0448\u0435 \u0442\u0435\u0445 \u043b\u044e\u0434\u0435\u0439, \u043d\u0430 \u043f\u0430\u0440\u0442\u0438\u044f\u0445 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0451 \u043e\u0431\u0443\u0447\u0430\u043b\u0438. \u042d\u0442\u0443 \u0432\u044b\u0441\u043e\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u043e\u0440\u0438\u0442\u044c \u043b\u0438\u0448\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f &#171;<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D0%BF%D0%BE%D0%B4%D0%BA%D1%80%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC\" rel=\"nofollow noopener noreferrer\">\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c<\/a>&#187; \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/AlphaGo\" rel=\"nofollow noopener noreferrer\">Alpha Go<\/a> \u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/AlphaGo#AlphaGo_Zero\" rel=\"nofollow noopener noreferrer\">AlphaGo Zero<\/a>. \u0411\u043e\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u044b\u0433\u0440\u0430\u0442\u044c \u0441\u0430\u043c \u0441 \u0441\u043e\u0431\u043e\u0439 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u043f\u0430\u0440\u0442\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0439\u0442\u0438 \u043d\u0430 \u0438\u0445 \u0443\u0440\u043e\u0432\u0435\u043d\u044c. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043c\u0435\u0440\u0442\u043d\u043e\u0433\u043e, \u044d\u0442\u0430 \u0446\u0435\u043b\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0430, \u043d\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438\u0433\u0440, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a &#171;<a href=\"https:\/\/dagazproject.github.io\/go\/atari-go.htm\" rel=\"nofollow noopener noreferrer\">\u0410\u0442\u0430\u0440\u0438 \u0413\u043e<\/a>&#187; \u0438\u043b\u0438 <a href=\"https:\/\/dagazproject.github.io\/arrange\/hex-board.htm\" rel=\"nofollow noopener noreferrer\">Hex<\/a> \u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u043e\u0441\u043a\u0430\u0445. \u0415\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/583028\/\"> https:\/\/habr.com\/ru\/articles\/583028\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/dagazproject.github.io\/go\/go-19x19-advisor.htm?turn=1;&amp;setup=991\/991\/95b4\/3w93b2\/991\/991\/991\/991\/991\/991\/991\/991\/991\/991\/3w92b3\/94w5\/97b2\/991\/991\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" align=\"left\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vb\/ec\/-l\/vbec-lydceg5dprlbik-oho3ztu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/vb\/ec\/-l\/vbec-lydceg5dprlbik-oho3ztu.png\"\/><\/a><b><i>There is no difference between theory and practice in theory, <br \/>  but there is often a great deal of difference between theory <br \/>  and practice in practice.<\/p>\n<p>  <a href=\"https:\/\/quoteinvestigator.com\/2018\/04\/14\/theory\/#more-18386\" rel=\"nofollow noopener noreferrer\">Yogi Berra<\/a><\/p>\n<p>  \u042f \u0441\u043b\u0435\u043f\u044b\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u0433\u043b\u0430\u0437 \u0432\u0441\u0442\u0430\u0432\u0438\u043b \u0437\u0432\u0435\u0437\u0434\u044b \u0438 \u0441\u0438\u043d\u0435\u0435 \u043d\u0435\u0431\u043e.<\/p>\n<p>  <a href=\"http:\/\/chords.seriyps.ru\/short\/ddt::ya-ostanovil-vremya\/\" rel=\"nofollow noopener noreferrer\">\u042e\u0440\u0438\u0439 \u0428\u0435\u0432\u0447\u0443\u043a<\/a><\/i><br \/>  <\/b><br \/>  \u0422\u0435\u043c\u0430 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0431\u043e\u0442\u043e\u0432 \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b\u0430 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"https:\/\/github.com\/GlukKazan\/Dagaz\" rel=\"nofollow noopener noreferrer\">Dagaz<\/a>, \u044f \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 <a href=\"https:\/\/dagazproject.github.io\/\" rel=\"nofollow noopener noreferrer\">\u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0438\u0433\u0440\u044b<\/a>, \u043d\u043e \u0447\u0442\u043e \u0432 \u043d\u0438\u0445 \u0442\u043e\u043b\u043a\u0443, \u0435\u0441\u043b\u0438 \u0441 \u0442\u043e\u0431\u043e\u0439 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0438\u0433\u0440\u0430\u0435\u0442? <a href=\"https:\/\/nestjs.com\/\" rel=\"nofollow noopener noreferrer\">Nest<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c <a href=\"https:\/\/games.dtco.ru\/map\" rel=\"nofollow noopener noreferrer\">\u0441\u0435\u0440\u0432\u0435\u0440<\/a>, \u0434\u043b\u044f \u0438\u0433\u0440\u044b \u043f\u043e \u0441\u0435\u0442\u0438, \u043d\u043e \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u043d\u0430 \u043d\u0451\u043c \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0440\u043e\u0434\u0443, \u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438. \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u043e\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043f\u0438\u0441\u0430\u043b, \u0431\u044b\u043b\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0441\u043b\u0430\u0431\u044b\u043c\u0438. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 <a href=\"https:\/\/www.chessprogramming.org\/Garbochess\" rel=\"nofollow noopener noreferrer\">Garbochess<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e <a href=\"https:\/\/habr.com\/ru\/post\/541086\/\">\u043f\u0435\u0440\u0435\u043b\u043e\u043c\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e<\/a>, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u043b\u043e\u0441\u044c \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0445 \u0438\u0433\u0440. \u041f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u0442 \u0434\u043b\u044f \u0438\u0433\u0440\u044b \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%BE\" rel=\"nofollow noopener noreferrer\">\u0413\u043e<\/a>\u2026  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-387061","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/387061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=387061"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/387061\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=387061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=387061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=387061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}