{"id":297153,"date":"2020-01-15T09:00:14","date_gmt":"2020-01-15T09:00:14","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=297153"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=297153","title":{"rendered":"\u041e\u0441\u043d\u043e\u0432\u044b deep learning \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u0435\u0431\u0430\u0433\u0430 \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430, \u0447\u0430\u0441\u0442\u044c \u21161"},"content":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/484016\/\">\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 keras.io, \u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u043e\u0441\u044b\u043b\u043e\u0432 \u0442\u0430\u043c \u0437\u0432\u0443\u0447\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a: \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u044b \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u043d\u043e \u043f\u0440\u043e \u043d\u0438\u0445 \u0447\u0430\u0441\u0442\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0432 \u043e\u0431\u0443\u0447\u0430\u043b\u043a\u0430\u0445 \u0438 \u043d\u0430\u0440\u043e\u0434\u0443 \u0437\u0430\u0445\u043e\u0434\u0438\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043e\u0431\u0443\u0447\u0430\u043b\u043a\u0443 \u043f\u0440\u043e \u043d\u0438\u0445:<\/p>\n<p>  <\/p>\n<p><em>Their main claim to fame comes from being featured in many introductory machine learning classes available online. As a result, a lot of newcomers to the field absolutely love autoencoders and can&#8217;t get enough of them. This is the reason why this tutorial exists!<\/em><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0445 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u2014 \u043f\u043e\u0438\u0441\u043a \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439, \u0438 \u043b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0435\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d. <\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u0432 \u0435\u0441\u0442\u044c <strong>\u043e\u0447\u0435\u043d\u044c<\/strong> \u043c\u043d\u043e\u0433\u043e \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430\u043c, \u043d\u0430\u0444\u0438\u0433\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d? \u041d\u0443, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0447\u0438\u043d:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0421\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 3 \u0438\u043b\u0438 4, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0445 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438;<\/li>\n<li>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u2014 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u0430\u0434\u0430\u043b\u044c\u043d\u043e\u043c MNIST&#8217;\u0435 \u0441 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438 28\u044528;<\/li>\n<li>\u041d\u0430 \u043c\u043e\u0439 \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u2014 \u043e\u043d\u0438 \u043d\u0435 \u0432\u044b\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c;<\/li>\n<li>\u0418 \u0441\u0430\u043c\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u2014 \u043b\u0438\u0447\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u0438 \u0437\u0430\u043c\u0435\u043d\u0435 MNIST&#8217;\u0430 \u043d\u0430 <strong>\u0441\u0432\u043e\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u2014 \u043e\u043d\u043e \u0432\u0441\u0435 \u0442\u0443\u043f\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/strong>. <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043c\u043e\u0439 \u043f\u0443\u0442\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0448\u0438\u0448\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u043b\u043e\u0441\u043a\u0438\u0445 (\u043d\u0435 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0445) \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438\u0437 \u043c\u0430\u0441\u0441\u044b \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u0438 \u0432\u0442\u0443\u043f\u0443\u044e \u0435\u0435 \u0441\u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u2014 \u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0438 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0426\u0435\u043b\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443 \u0438, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<p>  <\/p>\n<p>\u042f \u043d\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u0432\u044b\u043a \u0432 \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435. \u0414\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 data scientists \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0441\u044f \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u0438\u043a\u043e\u0439, \u0430 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0438 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0441\u044f. <\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0447\u0442\u043e \u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u0412 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432\u0430\u0445 \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0445\u043e\u0442\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u043e \u043d\u0435\u0433\u043e. \u0415\u0441\u0442\u044c ADS-B \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a, \u043e\u043d \u043b\u043e\u0432\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u043b\u0435\u0442\u0430\u044e\u0449\u0438\u0445 \u043c\u0438\u043c\u043e \u0441\u0430\u043c\u043e\u043b\u0435\u0442\u043e\u0432 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0445, \u0441\u0430\u043c\u043e\u043b\u0435\u0442\u043e\u0432, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432 \u0431\u0430\u0437\u0443. \u0418\u043d\u043e\u0433\u0434\u0430, \u0441\u0430\u043c\u043e\u043b\u0435\u0442\u044b \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e \u2014 \u043a\u0440\u0443\u0436\u0430\u0442, \u0447\u0442\u043e\u0431\u044b \u0441\u0436\u0435\u0447\u044c \u0433\u043e\u0440\u044e\u0447\u0435\u0435 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0441\u0430\u0434\u043a\u043e\u0439, \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0430\u0441\u0442\u043d\u044b\u0435 \u0440\u0435\u0439\u0441\u044b \u043b\u0435\u0442\u0430\u044e\u0442 \u043c\u0438\u043c\u043e \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 (\u043a\u043e\u0440\u0438\u0434\u043e\u0440\u043e\u0432). \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0432\u044b\u0447\u043b\u0435\u043d\u0438\u0442\u044c \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u0430\u043c\u043e\u043b\u0435\u0442\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u043b\u0438 \u0441\u0435\u0431\u044f \u043d\u0435 \u0442\u0430\u043a, \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435. \u0412\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e, \u0447\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0449\u0435, \u043d\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 <del>\u0432\u043e\u043b\u0448\u0435\u0431\u0441\u0442\u0432\u043e<\/del> \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438.<\/p>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u0437 4000 \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u044b\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a 64\u044564 \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vw\/5r\/mh\/vw5rmhetruoniuc7p4ksjulshde.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043b\u0438\u043d\u0438\u0438 \u043d\u0430 \u0447\u0435\u0440\u043d\u043e\u043c \u0444\u043e\u043d\u0435, \u043f\u0440\u0438\u0447\u0435\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 64\u044564 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 2% \u0442\u043e\u0447\u0435\u043a. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0442\u043e \u0442\u0430\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043b\u0438\u043d\u0438\u0439 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0430. <\/p>\n<p>  <\/p>\n<p>\u041d\u0435 \u0431\u0443\u0434\u0443 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0441\u044f, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f, \u0438\u0431\u043e \u0446\u0435\u043b\u044c \u0441\u0442\u0430\u0442\u044c\u0438, \u043e\u043f\u044f\u0442\u044c \u0442\u0430\u043a\u0438, \u043d\u0435 \u044d\u0442\u043e. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0436\u0443 \u0441\u0442\u0440\u0430\u0448\u043d\u044b\u0439 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\"># only for google colab %tensorflow_version 2.x  import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import os import zipfile import datetime import tensorflow_addons as tfa  BATCH_SIZE = 128 AUTOTUNE=tf.data.experimental.AUTOTUNE  def load_image(fpath):   img_raw = tf.io.read_file(fpath)   img = tf.io.decode_png(img_raw, channels=1, dtype=tf.uint8)   return tf.image.convert_image_dtype(img, dtype=tf.float32)  ## for splitting test\/train def is_test(x, y):   return x % 4 == 0  def is_train(x, y):   return not is_test(x,y)  ## for image augmentation def random_flip_flop(img):   return tf.image.random_flip_left_right(img)  def transform_aug(shift_val):   def random_transform(img):     return tfa.image.translate(img,tf.random.uniform([2], -1*shift_val, shift_val))   return random_transform  def prepare_for_training(ds, cache=True, shuffle_buffer_size=1000, transform=0, flip=False):   if cache:     if isinstance(cache, str):       ds = ds.cache(cache)     else:       ds = ds.cache()    ds = ds.shuffle(buffer_size=shuffle_buffer_size)    if transform != 0:     ds = ds.map(transform_aug(transform))    if flip:     ds = ds.map(random_flip_flop)    ds = ds.repeat()   ds = ds.batch(BATCH_SIZE)   ds = ds.prefetch(buffer_size=AUTOTUNE)    return ds  def prepare_input_output(x):     return (x, x)  list_ds = tf.data.Dataset.list_files(\"\/content\/planes64\/*\") imgs_df = list_ds.map(load_image)  train = imgs_df.enumerate().filter(is_train).map(lambda x,y: y) train_ds = prepare_for_training(train, transform=10, flip=True) train_ds = train_ds.map(prepare_input_output)  val = imgs_df.enumerate().filter(is_test).map(lambda x, y: y) val_ds = val.map(prepare_input_output).batch(BATCH_SIZE, drop_remainder=True)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0412\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0435\u0440\u0432\u0430\u044f \u0436\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441 keras.io, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443 \u043d\u0438\u0445 \u043d\u0430 mnist&#8217;\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0438 \u043e\u0431\u0443\u0447\u0430\u043b\u0430\u0441\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\"># this is the size of our encoded representations encoding_dim = 32  # 32 floats -&gt; compression of factor 24.5, assuming the input is 784 floats  # this is our input placeholder input_img = Input(shape=(784,)) # \"encoded\" is the encoded representation of the input encoded = Dense(encoding_dim, activation='relu')(input_img) # \"decoded\" is the lossy reconstruction of the input decoded = Dense(784, activation='sigmoid')(encoded)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64\/10, activation='relu'))  model.add(tf.keras.layers.Dense(64*64, activation=\"sigmoid\")) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f, \u0447\u0442\u043e \u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0435\u043b\u0430\u044e flatten \u0438 reshape, \u0438 \u0447\u0442\u043e &#171;\u0441\u0436\u0438\u043c\u0430\u044e&#187; \u043d\u0435 \u0432 25 \u0440\u0430\u0437, \u0430 \u0432\u0441\u0435\u0433\u043e \u0432 10. \u041d\u0438 \u043d\u0430 \u0447\u0442\u043e \u0432\u043b\u0438\u044f\u0442\u044c \u044d\u0442\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e. <\/p>\n<p>  <\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 loss-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 mean squared error, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u043d\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u0435\u043d, \u043f\u0443\u0441\u0442\u044c adam. \u0417\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435, \u0442\u0440\u0435\u043d\u0438\u0440\u0443\u0435\u043c 20 \u044d\u043f\u043e\u0445, \u043f\u043e 100 \u0448\u0430\u0433\u043e\u0432 \u0432 \u044d\u043f\u043e\u0445\u0435. <\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u2014 \u0432\u0441\u0435 \u0432 \u043e\u0433\u043d\u0435. Accuracy == 0.993. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u2014 \u0432\u0441\u0435 \u0447\u0443\u0442\u044c \u0433\u0440\u0443\u0441\u0442\u043d\u0435\u0435, \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u043f\u043b\u0430\u0442\u043e \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u044d\u043f\u043e\u0445\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fo\/rq\/r7\/forqr7krelrj1xq1qis_jg2jeoq.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438 \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430, \u0442\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0433\u0440\u0443\u0441\u0442\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 (\u0441\u0432\u0435\u0440\u0445\u0443 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b, \u0441\u043d\u0438\u0437\u0443 \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f-\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f):<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xo\/mn\/oq\/xomnoqmjj80uaal0echobmal9xm.png\"><\/p>\n<p>  <\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u043f\u044b\u0442\u0430\u0435\u0448\u044c\u0441\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u0431\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0432 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438. \u0422\u0430\u043a \u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043c. <\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0435 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u2014 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043b\u043e\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043e\u043d\u0438 \u0436\u0435. \u041f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043c\u043e\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e flatten \u0438 reshape. \u0412\u043e\u0442 \u0442\u0430\u043a\u0430\u044f no-op \u043c\u043e\u0434\u0435\u043b\u044c: <\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vx\/z0\/aj\/vxz0ajadu2qiktdq5ndzj5xje8w.png\"><\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u0443\u0447\u0430\u0442\u044c \u0442\u0443\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0434\u043e. \u041d\u0443 \u0438 \u0437\u0430\u043e\u0434\u043d\u043e \u043e\u043d\u043e \u0434\u043e\u043a\u0430\u0437\u0430\u043b\u043e, \u0447\u0442\u043e \u043c\u043e\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u044b\u043b\u0430 \u043d\u0435 no-op, \u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0442\u0443\u043f\u043e\u0439 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u0441\u043b\u043e\u0439 \u0441\u0436\u0430\u0442\u0438\u044f, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0441 input. \u041a\u0430\u043a \u043f\u0438\u0448\u0443\u0442 \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445, \u043c\u043e\u043b, \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u0448\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0447\u0438\u043b\u0430 \u0444\u0438\u0447\u0438, \u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0441\u0442\u043e identity \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439. \u041d\u0443 \u0430 \u043c\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u043f\u0443\u0441\u0442\u044c \u0441\u0435\u0431\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434.<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, activation=\"sigmoid\")) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0435\u043c\u0443-\u0442\u043e \u043e\u043d\u0430 \u0443\u0447\u0438\u0442\u0441\u044f, accuracy == 0.995 \u0438 \u043e\u043f\u044f\u0442\u044c \u0443\u0442\u044b\u043a\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043b\u0430\u0442\u043e.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ro\/t6\/jk\/rot6jkf2ertweb7weeh8d_layui.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u043e, \u0432 \u0446\u0435\u043b\u043e\u043c, \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e. \u0414\u0430 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u2014 \u0447\u0435\u043c\u0443 \u0442\u0430\u043c \u0443\u0447\u0438\u0442\u044c\u0441\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0432\u0445\u043e\u0434 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 \u0438 \u0432\u0441\u0435.<br \/>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e keras&#8217;\u0430 \u043f\u0440\u043e dense \u0441\u043b\u043e\u0438, \u0442\u043e \u0442\u0430\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d\u0438 \u0434\u0435\u043b\u0430\u044e\u0442: <code>output = activation(dot(input, kernel) + bias)<\/code><br \/>  \u0427\u0442\u043e\u0431\u044b output \u0441\u043e\u0432\u043f\u0430\u043b \u0441 input&#8217;\u043e\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0432\u0435\u0449\u0435\u0439 \u2014 bias = 0 \u0438 kernel \u2014 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 (\u0442\u0443\u0442 \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u043f\u0443\u0441\u0442\u0430\u0442\u044c \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u043e\u0439, \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438 \u2014 \u044d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0442\u0443\u043a\u0438). \u0411\u043b\u0430\u0433\u043e, \u0438 \u0442\u043e \u0438 \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043a \u0442\u043e\u0439 \u0436\u0435 <code>Dense<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, activation = \"sigmoid\", use_bias=False, kernel_initializer = tf.keras.initializers.Identity())) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422.\u043a. \u0432\u0435\u0441\u0430 \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 \u0441\u0440\u0430\u0437\u0443, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u0447\u0438\u0442\u044c \u2014 \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0445\u043e\u0440\u043e\u0448\u043e:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dm\/tk\/5a\/dmtk5ardo9xksg8c5v5febzikdo.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0432\u043e\u0442 \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u0442\u043e \u0442\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f, \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u2014 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441 accuracy == 1.0, \u043d\u043e \u043e\u043d \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0430\u0434\u0430\u0435\u0442.<br \/>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 evaluate \u0434\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f: <code>8\/Unknown - 1s 140ms\/step - loss: 0.2488 - accuracy: 1.0000[0.24875330179929733, 1.0]<\/code>. \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">Epoch 1\/20 100\/100 [==============================] - 6s 56ms\/step - loss: 0.1589 - accuracy: 0.9990 - val_loss: 0.0944 - val_accuracy: 0.9967 Epoch 2\/20 100\/100 [==============================] - 5s 51ms\/step - loss: 0.0836 - accuracy: 0.9964 - val_loss: 0.0624 - val_accuracy: 0.9958 Epoch 3\/20 100\/100 [==============================] - 5s 50ms\/step - loss: 0.0633 - accuracy: 0.9961 - val_loss: 0.0470 - val_accuracy: 0.9958 Epoch 4\/20 100\/100 [==============================] - 5s 48ms\/step - loss: 0.0520 - accuracy: 0.9961 - val_loss: 0.0423 - val_accuracy: 0.9961 Epoch 5\/20 100\/100 [==============================] - 5s 48ms\/step - loss: 0.0457 - accuracy: 0.9962 - val_loss: 0.0357 - val_accuracy: 0.9962<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430 \u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u2014 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 1 \u0432 1, \u0430 loss (mean squared error) \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 0.25 \u043f\u043e\u0447\u0442\u0438.<br \/>  \u042d\u0442\u043e, \u043a\u0441\u0442\u0430\u0442\u0438, \u0447\u0430\u0441\u0442\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u2014 loss \u043f\u0430\u0434\u0430\u0435\u0442, \u0430 accuracy \u043d\u0435 \u0440\u0430\u0441\u0442\u0435\u0442, \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c?<br \/>  \u0422\u0443\u0442 \u0441\u0442\u043e\u0438\u0442 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0435\u0449\u0435 \u0440\u0430\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u044f Dense: <code>output = activation(dot(input, kernel) + bias)<\/code> \u0438 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0435 \u0432 \u043d\u0435\u043c \u0441\u043b\u043e\u0432\u043e activation, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u0442\u0430\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0432\u044b\u0448\u0435. \u0421 \u0432\u0435\u0441\u0430\u043c\u0438 \u0438\u0437 identity \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438 \u0431\u0435\u0437 bias \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c <code>output = activation(input)<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0443 \u043d\u0430\u0441 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0435-\u0442\u043e \u0443\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430, sigmoid, \u044f \u0435\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0443\u043f\u043e \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u043b \u0438 \u0432\u0441\u0435. \u0414\u0430 \u0438 \u0432 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445 \u0435\u0435 \u0432\u0435\u0437\u0434\u0435 \u0441\u043e\u0432\u0435\u0442\u0443\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u041d\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f. <\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u043f\u0440\u043e \u043d\u0435\u0435 \u043f\u0438\u0448\u0443\u0442: <code>The sigmoid activation: (1.0 \/ (1.0 + exp(-x)))<\/code>. \u0427\u0442\u043e \u043b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0438\u0447\u0435\u0433\u043e, \u0438\u0431\u043e \u044f \u043d\u0435 \u0444\u0430\u043d\u0442\u043e\u043c\u0430\u0441 \u043d\u0438 \u0440\u0430\u0437\u0443, \u0447\u0442\u043e\u0431\u044b \u0442\u0430\u043a\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c.<br \/>  \u041d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0443\u0447\u043a\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">import matplotlib.ticker as plticker range_tensor = tf.range(-4, 4, 0.01, dtype=tf.float32) fig, ax = plt.subplots(1,1) plt.plot(range_tensor.numpy(), tf.keras.activations.sigmoid(range_tensor).numpy()) ax.grid(which='major', linestyle='-', linewidth='0.5', color='red') ax.grid(which='minor', linestyle=':', linewidth='0.5', color='black') ax.yaxis.set_major_locator(plticker.MultipleLocator(base=0.5) ) plt.minorticks_on()<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tp\/bs\/1b\/tpbs1bjym9vqahdihjhm1aubrne.png\"><\/p>\n<p>  <\/p>\n<p>\u0418 \u0432\u043e\u0442 \u0442\u0443\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u043d\u0443\u043b\u0435 \u0441\u0438\u0433\u043c\u043e\u0439\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0.5, \u0430 \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0435 \u2014 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 0.73. \u0410 \u0442\u043e\u0447\u043a\u0438 \u0443 \u043d\u0430\u0441 \u0431\u044b\u0432\u0430\u044e\u0442 \u0438\u043b\u0438 \u0447\u0435\u0440\u043d\u044b\u043c\u0438 (0.0), \u0438\u043b\u0438 \u0431\u0435\u043b\u044b\u043c\u0438 (1.0). \u0412\u043e\u0442 \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442, \u0447\u0442\u043e mean squared error \u0443 identity \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u043c. <\/p>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0443\u0447\u043a\u0430\u043c\u0438, \u0432\u043e\u0442 \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">array([0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.7310586, 0.7310586,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      , 0.5      , 0.5      ,        0.5      , 0.5      , 0.5      , 0.5      ], dtype=float32)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u044d\u0442\u043e \u0432\u0441\u0435, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e, \u0438\u0431\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0448\u0435? <\/li>\n<li>\u0430 \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u043e\u0433\u0434\u0430 accuracy == 1.0, \u0432\u0435\u0434\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0436 0 \u0438 1. <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u2014 \u0432\u0441\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b matplotlib: <code>plt.imshow(res_imgs[i][:, :, 0])<\/code>. \u0418, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u043e\u0439\u0442\u0438 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0442\u043e \u0432\u0441\u0435 \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e: <code>The Normalize instance used to scale scalar data to the [0, 1] range before mapping to colors using cmap. By default, a linear scaling mapping the lowest value to 0 and the highest to 1 is used.<\/code> \u0422.\u0435. \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0437\u0430\u0431\u043e\u0442\u043b\u0438\u0432\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0430 \u043c\u043e\u0438 0.5 \u0438 0.73 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043e\u0442 0 \u0434\u043e 1. \u041c\u0435\u043d\u044f\u0435\u043c \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">plt.imshow(res_imgs[i][:, :, 0], norm=matplotlib.colors.Normalize(0.0, 1.0))<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rn\/qn\/ta\/rnqntag1dohhikail8y6myq7siy.png\"><\/p>\n<p>  <\/p>\n<p>\u0410 \u0432\u043e\u0442 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u043e\u043f\u0440\u043e\u0441 \u0441 accuracy. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u2014 \u043f\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0435 \u0438\u0434\u0435\u043c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u0430 <code>tf.keras.metrics.Accuracy<\/code> \u0438 \u0442\u0430\u043c \u0432\u0440\u043e\u0434\u0435 \u043f\u0438\u0448\u0443\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">For example, if y_true is [1, 2, 3, 4] and y_pred is [0, 2, 3, 4] then the accuracy is 3\/4 or .75.<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443 \u043d\u0430\u0441 accuracy \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b\u0442\u044c 0. \u042f, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u0437\u0430\u043a\u043e\u043f\u0430\u043b\u0441\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u0442\u0430\u043c \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\"> When you pass the strings 'accuracy' or 'acc', we convert this to one of `tf.keras.metrics.BinaryAccuracy`, `tf.keras.metrics.CategoricalAccuracy`, `tf.keras.metrics.SparseCategoricalAccuracy` based on the loss function used and the model output shape. We do a similar conversion for the strings 'crossentropy' and 'ce' as well.<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u0447\u0435\u043c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0430 \u043d\u0435\u0442 \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 <code>.compile<\/code>. <\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430 \u0438\u0437 <a href=\"https:\/\/github.com\/tensorflow\/tensorflow\/blob\/66c48046f169f3565d12e5fea263f6d731f9bfd2\/tensorflow\/python\/keras\/engine\/compile_utils.py\" rel=\"nofollow\">https:\/\/github.com\/tensorflow\/tensorflow\/blob\/66c48046f169f3565d12e5fea263f6d731f9bfd2\/tensorflow\/python\/keras\/engine\/compile_utils.py<\/a><\/p>\n<p>  <\/p>\n<pre><code class=\"python\">y_t_rank = len(y_t.shape.as_list()) y_p_rank = len(y_p.shape.as_list()) y_t_last_dim = y_t.shape.as_list()[-1] y_p_last_dim = y_p.shape.as_list()[-1]  is_binary = y_p_last_dim == 1 is_sparse_categorical = (     y_t_rank &lt; y_p_rank or y_t_last_dim == 1 and y_p_last_dim &gt; 1)  if metric in ['accuracy', 'acc']: if is_binary:     metric_obj = metrics_mod.binary_accuracy elif is_sparse_categorical:     metric_obj = metrics_mod.sparse_categorical_accuracy else:     metric_obj = metrics_mod.categorical_accuracy<\/code><\/pre>\n<p>  <\/p>\n<p><code>y_t<\/code> \u044d\u0442\u043e y_true, \u0438\u043b\u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435, <code>y_p<\/code> \u044d\u0442\u043e y_predicted, \u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044e.<br \/>  \u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443 \u043d\u0430\u0441: <code>shape=(64,64,1)<\/code>, \u0432\u043e\u0442 \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442, \u0447\u0442\u043e accuracy \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a binary_accuracy. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0440\u0430\u0434\u0438, \u043a\u0430\u043a \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">def binary_accuracy(y_true, y_pred, threshold=0.5):   threshold = math_ops.cast(threshold, y_pred.dtype)   y_pred = math_ops.cast(y_pred &gt; threshold, y_pred.dtype)   return K.mean(math_ops.equal(y_true, y_pred), axis=-1)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u0431\u0430\u0432\u043d\u043e, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0435\u0437\u043b\u043e \u2014 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0435\u0434\u0438\u043d\u0438\u0446\u0435\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 0.5, \u0430 0.5 \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u2014 \u043d\u0443\u043b\u0435\u043c. \u0412\u043e\u0442 \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 accuracy \u0441\u0442\u043e\u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u0430\u044f \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 identity \u043c\u043e\u0434\u0435\u043b\u0438, \u0445\u043e\u0442\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0442\u0430\u043c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0442\u0430\u043a\u0438\u0435 \u0436\u0435. \u041d\u0443 \u0438, \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u2014 \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c threshold \u0438 \u0441\u0432\u0435\u0441\u0442\u0438 accuracy \u043a \u043d\u0443\u043b\u044e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u043e \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043d\u0443\u0436\u043d\u043e. \u042d\u0442\u043e \u0436 \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0442\u044b\u0449\u0435\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0443\u0442\u0435\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0440\u0443\u0447\u043a\u0430\u043c\u0438 \u043f\u043e\u0434\u0435\u0440\u0433\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043f\u043e-\u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u043d\u0438\u0445 \u043d\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">m = tf.keras.metrics.BinaryAccuracy() m.update_state(x_batch, res_imgs) print(m.result().numpy())<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u0441\u0442 \u043d\u0430\u043c <code>1.0<\/code>. <\/p>\n<p>  <\/p>\n<p>\u0410 \u0432\u043e\u0442 <\/p>\n<p>  <\/p>\n<pre><code class=\"python\">m = tf.keras.metrics.Accuracy() m.update_state(x_batch, res_imgs) print(m.result().numpy())<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u0441\u0442 \u043d\u0430\u043c <code>0.0<\/code> \u043d\u0430 \u0442\u0435\u0445 \u0436\u0435 \u0441\u0430\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0441 loss-\u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u044b \u043f\u043e \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430\u043c, \u0442\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0434\u0432\u0443\u0445 loss-\u0444\u0443\u043d\u043a\u0446\u0438\u0439: \u043b\u0438\u0431\u043e mean squared error, \u043b\u0438\u0431\u043e &#8216;binary_crossentropy&#8217;. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043e\u0434\u043d\u043e \u043d\u0430 \u043d\u0438\u0445 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0434\u043b\u044f <code>mse<\/code> \u044f \u0443\u0436\u0435 \u0434\u0430\u0432\u0430\u043b <code>evaluate<\/code> \u043c\u043e\u0434\u0435\u043b\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">8\/Unknown - 2s 221ms\/step - loss: 0.2488 - accuracy: 1.0000[0.24876083992421627, 1.0]<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422.\u0435. loss == 0.2488. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a\u043e\u0439. \u041c\u043d\u0435 \u043b\u0438\u0447\u043d\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439: \u043f\u043e-\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 y_true \u0438 y_predict, \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043e\u0437\u0432\u043e\u0437\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442, \u0430 \u043f\u043e\u0442\u043e\u043c \u0438\u0449\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0435. <\/p>\n<p>  <\/p>\n<pre><code class=\"python\">tf.keras.backend.mean(tf.math.squared_difference(x_batch[0], res_imgs[0]))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">&lt;tf.Tensor: shape=(), dtype=float32, numpy=0.24826494&gt;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0443\u0442 \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2014 \u043f\u0443\u0441\u0442\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e, \u043c\u043e\u0434\u0435\u043b\u044c \u0432 \u043d\u0438\u0445 \u0432\u044b\u0434\u0430\u0435\u0442 0.5, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 0.25 \u2014 squared difference \u0434\u043b\u044f \u043d\u0438\u0445. <\/p>\n<p>  <\/p>\n<p>C binary crossenttrtopy \u0432\u0441\u0435 \u0447\u0443\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0438 \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u0438 \u0442\u0430\u043c \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">  if from_logits:     return nn.sigmoid_cross_entropy_with_logits(labels=target, logits=output)    if not isinstance(output, (ops.EagerTensor, variables_module.Variable)):     output = _backtrack_identity(output)       if output.op.type == 'Sigmoid':         # When sigmoid activation function is used for output operation, we         # use logits from the sigmoid function directly to compute loss in order         # to prevent collapsing zero when training.         assert len(output.op.inputs) == 1         output = output.op.inputs[0]         return nn.sigmoid_cross_entropy_with_logits(labels=target, logits=output)    # Compute cross entropy from probabilities.   bce = target * math_ops.log(output + epsilon())   bce += (1 - target) * math_ops.log(1 - output + epsilon())   return -bce<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u043b\u043e\u043c\u0430\u043b \u0433\u043e\u043b\u043e\u0432\u0443 \u043d\u0430\u0434 \u044d\u0442\u0438\u043c\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u043c\u0438 \u043a\u043e\u0434\u0430. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0432\u0435 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: \u043b\u0438\u0431\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d <code>sigmoid_cross_entropy_with_logits<\/code>, \u043b\u0438\u0431\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0430\u0440\u0430 \u0441\u0442\u0440\u043e\u0447\u0435\u043a. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e <code>sigmoid_cross_entropy_with_logits<\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043b\u043e\u0433\u0438\u0442\u0430\u043c\u0438(\u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, doh), \u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 \u2014 \u0441 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044f\u043c\u0438. <\/p>\n<p>  <\/p>\n<p>\u041a\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043b\u043e\u0433\u0438\u0442\u044b? \u0415\u0441\u043b\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043d\u0430 \u0442\u0435\u043c\u0443, \u0442\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u0444\u043e\u0440\u043c\u0443\u043b\u044b, \u0435\u0449\u0435 \u0447\u0442\u043e-\u0442\u043e. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0432\u0441\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e(\u043f\u043e\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043c\u0435\u043d\u044f, \u0435\u0441\u043b\u0438 \u044f \u043d\u0435 \u043f\u0440\u0430\u0432). \u0421\u044b\u0440\u043e\u0439 \u0432\u044b\u0445\u043e\u0434 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0442\u044b. \u041d\u0443 \u0438\u043b\u0438 log-odds, \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0448\u0430\u043d\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0432 <strong>log<\/strong>istic un<strong>its<\/strong> \u2014 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u043f\u0443\u0433\u0430\u044f\u0445. <\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u0443\u0442 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 &#8212; \u0437\u0430\u0447\u0435\u043c \u0442\u0430\u043c \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u0428\u0430\u043d\u0441\u044b (odds) \u2014 \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u0443\u0436\u043d\u044b\u0445 \u043d\u0430\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u043d\u0430\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439(\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u043d\u0430\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0432\u0441\u0435\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432\u043e\u043e\u0431\u0449\u0435). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0431\u0435\u0434 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0435\u0435 \u043f\u043e\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u0418 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043f\u043e\u0431\u0435\u0434\u0430\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u2014 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435-\u043b\u0443\u0437\u0435\u0440\u0441\u043a\u043e\u0439, \u0438 \u0438\u043c\u0435\u0442\u044c \u0448\u0430\u043d\u0441\u044b \u043d\u0430 \u043f\u043e\u0431\u0435\u0434\u0443 \u0432 1\/2 (\u043e\u0434\u0438\u043d \u043a \u0434\u0432\u0443\u043c), \u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0440\u0430\u0439\u043d\u0435 \u043b\u0443\u0437\u0435\u0440\u0441\u043a\u043e\u0439 \u2014 \u0438 \u0438\u043c\u0435\u0442\u044c \u0448\u0430\u043d\u0441\u044b \u043d\u0430 \u043f\u043e\u0431\u0435\u0434\u0443 1\/100. \u0418 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u2014 \u0441\u0440\u0435\u0434\u043d\u0435-\u043a\u0440\u0443\u0442\u043e\u0439 \u0438 2\/1, \u043a\u0440\u0443\u0447\u0435 \u0441\u0430\u043c\u044b\u0445 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0433\u043e\u0440 \u2014 \u0438 \u0442\u043e\u0433\u0434\u0430 100\/1. \u0418 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043b\u0443\u0437\u0435\u0440\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043e\u0442 0 \u0434\u043e 1, \u0430 \u043a\u0440\u0443\u0442\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u2014 \u043e\u0442 1 \u0434\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e, \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u043d\u0438\u043a\u0430\u043a\u043e\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0446\u0435\u043b\u043e\u043c \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u043c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e, \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043d\u0435\u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0439. \u0410 \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c \u043e\u0442 \u0448\u0430\u043d\u0441\u043e\u0432 \u2014 \u0442\u043e \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ln(1\/2) == -0.69 ln(2\/1) == 0.69 ln(1\/100) == -4.6 ln(100\/1) == 4.6<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 tensorflow \u2014 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u0442.\u043a., \u0441\u0442\u0440\u043e\u0433\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0432\u044b\u0445\u043e\u0434 \u0441\u043b\u043e\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f log-odds, \u043d\u043e \u0442\u0430\u043a \u0443\u0436 \u043f\u0440\u0438\u043d\u044f\u0442\u043e. \u0415\u0441\u043b\u0438 \u0441\u044b\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 -\u221e \u0434\u043e +\u221e \u2014 \u0442\u043e \u043b\u043e\u0433\u0438\u0442\u044b. \u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430: softmax \u0438 \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u2014 sigmoid. Softmax \u2014 \u0412\u043e\u0437\u044c\u043c\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u043b\u043e\u0433\u0438\u0442\u043e\u0432, \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0438\u0445 \u0432 \u0432\u0435\u043a\u0442\u043e\u0440 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439, \u0434\u0430 \u0435\u0449\u0435 \u0438 \u0442\u0430\u043a, \u0447\u0442\u043e \u0441\u0443\u043c\u043c\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 \u043d\u0435\u043c \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u0430 1. Sigmoid(\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 tf) \u0442\u043e\u0436\u0435 \u0432\u043e\u0437\u044c\u043c\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u043b\u043e\u0433\u0438\u0442\u043e\u0432, \u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0432 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445. <\/p>\n<p>  <\/p>\n<pre><code class=\"python\"># 1+ln(0.5) == 0.30685281944  tf.math.softmax(tf.constant([0.30685281944, 1.0, 0.30685281944])) ## &lt;tf.Tensor: shape=(3,), dtype=float32, numpy=array([0.25, 0.5 , 0.25], dtype=float32)&gt; tf.math.sigmoid(tf.constant([0.30685281944, 1.0, 0.30685281944])) ## &lt;tf.Tensor: shape=(3,), dtype=float32, numpy=array([0.57611686, 0.7310586 , 0.57611686], dtype=float32)&gt;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043d\u0430 \u044d\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0415\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 multi-label classification, \u0435\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 multi-class classification. Multiclass \u2014 \u044d\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u044f\u0431\u043b\u043e\u043a\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0438\u043b\u0438 \u0430\u043f\u0435\u043b\u044c\u0441\u0438\u043d\u044b, \u0430 \u043c\u043e\u0436\u0435\u0442 \u0438 \u0432\u043e\u0432\u0441\u0435 \u0430\u043d\u0430\u043d\u0430\u0441\u044b. \u0410 multilabel \u2014 \u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0444\u0440\u0443\u043a\u0442\u043e\u0432\u0430\u044f \u0432\u0430\u0437\u0430 \u0438 \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0438 \u044f\u0431\u043b\u043e\u043a\u0438 \u0438 \u0430\u043f\u0435\u043b\u044c\u0441\u0438\u043d\u044b, \u0430 \u0430\u043d\u0430\u043d\u0430\u0441\u043e\u0432 \u043d\u0435\u0442. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u043c multiclass \u2014 \u043d\u0443\u0436\u0435\u043d softmax, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0435\u043c multilabel \u2014 \u043d\u0443\u0436\u0435\u043d sigmoid.<br \/>  \u0412\u043e\u0442 \u0443 \u043d\u0430\u0441 \u0441\u043b\u0443\u0447\u0430\u0439 multilabel \u2014 \u043d\u0430\u0434\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f(\u043a\u043b\u0430\u0441\u0441\u0430) \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043b\u0438 \u043e\u043d. <\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a tensorflow \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432 binary crossentropy (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0430\u043b\u0435\u0435 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 crossentropy \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a \u0436\u0435) \u2014 \u0434\u0432\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u0442\u043a\u0438. Crossentropy \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u043e\u0431 \u044d\u0442\u043e\u043c \u043c\u044b \u0435\u0449\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0432\u0430 \u043f\u0443\u0442\u0438: \u043b\u0438\u0431\u043e \u043d\u0430 \u0432\u0445\u043e\u0434 \u0443\u0436\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043b\u043e\u0433\u0438\u0442\u044b \u2014 \u0438 \u0442\u043e\u0433\u0434\u0430 \u043a \u043d\u0438\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f sigmoid, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c. \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c sigmoid \u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c crossentropy \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c crossentropy \u0438\u0437 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439 (\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u0432\u043e\u0434 \u043f\u0440\u0438\u0447\u0438\u043d \u0435\u0441\u0442\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>sigmoid_cross_entropy_with_logits<\/code>, \u043f\u043b\u044e\u0441 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0433\u0443\u0433\u043b\u0438\u0442\u044c &#8216;numerical stability cross entropy&#8217;), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0436\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 tensorflow \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e\u0442 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 crossentropy \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0430 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0443\u0434\u0430 \u0441\u044b\u0440\u044b\u0435 \u043b\u043e\u0433\u0438\u0442\u044b. \u041d\u0443 \u0438 \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434\u0435 loss-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043b\u043e\u0439 \u2014 sigmoid, \u0442\u043e \u043e\u043d\u0438 \u0435\u0433\u043e \u043e\u0442\u0440\u0435\u0436\u0443\u0442 \u0438 \u0432\u043e\u0437\u044c\u043c\u0443\u0442 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432\u0445\u043e\u0434 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438, \u0430 \u043d\u0435 \u0435\u0435 \u0432\u044b\u0445\u043e\u0434, \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0432 \u0432\u0441\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0432 <code>sigmoid_cross_entropy_with_logits<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041b\u0430\u0434\u043d\u043e, \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0442\u0435\u043f\u0435\u0440\u044c binary_crossentropy. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 &#171;\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u044b\u0445&#187; \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043c\u0435\u0440\u044f\u0435\u0442 cross-entropy. <\/p>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435: \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043b\u044f n \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0437\u043d\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0438\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f(y<sub>0<\/sub>, y<sub>1<\/sub>, &#8230;, y<sub>n<\/sub>). \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u0436\u0438\u0437\u043d\u0438 \u0443 \u043d\u0430\u0441 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a k<sub>n<\/sub> \u0440\u0430\u0437(k<sub>1<\/sub>, k<sub>1<\/sub>, &#8230;, k<sub>n<\/sub>). \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u2014 (y<sub>1<\/sub>^k<sub>1<\/sub>)(y<sub>2<\/sub>^k<sub>2<\/sub>)&#8230;(y<sub>n<\/sub>^k<sub>n<\/sub>). \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u2014 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u0440\u043e\u0441\u0441-\u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438 \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u0430\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u043e \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043e\u0442 0 \u0434\u043e 1 \u0438 \u0447\u0430\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0443\u0434\u043e\u0431\u043d\u043e.<br \/>  \u0415\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c \u2014 \u0432\u044b\u0439\u0434\u0435\u0442 k<sub>1<\/sub>log(y<sub>1<\/sub>) + k<sub>2<\/sub>log(y<sub>2<\/sub>) \u043d\u0443 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442 -\u221e \u0434\u043e 0. \u0423\u043c\u043d\u043e\u0436\u0438\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u043d\u0430 -1\/n \u2014 \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043e\u0442 0 \u0434\u043e +\u221e, \u043c\u0430\u043b\u043e \u0442\u043e\u0433\u043e, \u0442.\u043a. \u043e\u043d\u043e \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0431\u0449\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. <\/p>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435: \u043a\u0440\u043e\u0441\u0441-\u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0438\u0442, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0442\u0430\u043c \u0434\u0435\u043b\u0430\u043b\u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c \u0441 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435\u043c 2 \u2014 \u0442\u043e \u0432\u044b\u0448\u043b\u0438 \u0431\u044b \u043f\u0440\u044f\u043c\u043e \u0431\u0438\u0442\u044b. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0435\u0437\u0434\u0435 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e nat&#8217;\u043e\u0432 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Nat_(unit\" rel=\"nofollow\">https:\/\/en.wikipedia.org\/wiki\/Nat_(unit<\/a>)), \u0430 \u043d\u0435 \u0431\u0438\u0442\u043e\u0432. <\/p>\n<p>  <\/p>\n<p>Binary cross-entropy, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u043a\u0440\u043e\u0441\u0441-\u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0440\u0430\u0432\u043d\u043e \u0434\u0432\u0443\u043c. \u0422\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0437\u043d\u0430\u043d\u0438\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u2014 y<sub>1<\/sub>, \u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 (1-y<sub>1<\/sub>).<\/p>\n<p>  <\/p>\n<p>\u041d\u043e, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043c\u0435\u043d\u044f \u0447\u0443\u0442\u043e\u043a \u0437\u0430\u043d\u0435\u0441\u043b\u043e. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437 \u043c\u044b \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c identity \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043e\u043d \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e, \u0438 \u0434\u0430\u0436\u0435 accuracy \u0432 1.0, \u043d\u043e \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u0446\u0438\u0444\u0435\u0440\u043a\u0438 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043f\u0430\u043b\u043e. \u0420\u0430\u0434\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0435\u0449\u0435 \u043f\u0430\u0440\u043e\u0447\u043a\u0443 \u0442\u0435\u0441\u0442\u043e\u0432:<br \/>  1) \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e, \u0431\u0443\u0434\u0435\u0442 \u0447\u0438\u0441\u0442\u044b\u0439 identity<br \/>  2) \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0442 \u0436\u0435 relu<\/p>\n<p>  <\/p>\n<p>\u0411\u0435\u0437 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, use_bias=False, kernel_initializer=tf.keras.initializers.Identity())) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e identity \u043c\u043e\u0434\u0435\u043b\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model.evaluate(x=val.map(lambda x: (x,x)).batch(BATCH_SIZE, drop_remainder=True)) #  8\/Unknown - 1s 173ms\/step - loss: 0.0000e+00 - accuracy: 1.0000[0.0, 1.0]<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435, \u043a\u0441\u0442\u0430\u0442\u0438, \u043d\u0438 \u043a \u0447\u0435\u043c\u0443 \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442, \u0438\u0431\u043e loss == 0.0. <\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441 relu. \u0415\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">import matplotlib.ticker as plticker range_tensor = tf.range(-4, 4, 0.01, dtype=tf.float32) fig, ax = plt.subplots(1,1) plt.plot(range_tensor.numpy(), tf.keras.activations.relu(range_tensor).numpy()) ax.grid(which='major', linestyle='-', linewidth='0.5', color='red') ax.grid(which='minor', linestyle=':', linewidth='0.5', color='black') ax.yaxis.set_major_locator(plticker.MultipleLocator(base=1) ) plt.minorticks_on()<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wq\/ph\/iw\/wqphiwwmhtmxwfogld4nstyfp9w.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u0438\u0436\u0435 \u043d\u0443\u043b\u044f \u2014 \u043d\u043e\u043b\u044c, \u0432\u044b\u0448\u0435 \u2014 y=x, \u0442.\u0435. \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u044d\u0444\u0444\u0435\u043a\u0442, \u0447\u0442\u043e \u0438 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u2014 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c.<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, activation='relu', use_bias=False, kernel_initializer=tf.keras.initializers.Identity())) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))  model.compile(optimizer=\"adam\", loss=\"binary_crossentropy\", metrics=[\"accuracy\"])  model.evaluate(x=val.map(lambda x: (x,x)).batch(BATCH_SIZE, drop_remainder=True)) #    8\/Unknown - 1s 158ms\/step - loss: 0.0000e+00 - accuracy: 1.0000[0.0, 1.0]<\/code><\/pre>\n<p>  <\/p>\n<p>\u041b\u0430\u0434\u043d\u043e, \u0441 identity \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0434\u0430\u0436\u0435 \u0441 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0447\u0430\u0441\u0442\u044c\u044e \u0442\u0435\u043e\u0440\u0438\u0438 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0443 \u0436\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0431\u0443\u0447\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 identity.<br \/>  \u0421\u043c\u0435\u0445\u0430 \u0440\u0430\u0434\u0438, \u043f\u0440\u043e\u0432\u0435\u0434\u0443 \u044d\u0442\u043e\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043d\u0430 \u0442\u0440\u0435\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u2014 relu, \u0438\u0431\u043e \u043e\u043d \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0441\u0435\u0431\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u043d\u044c\u0448\u0435(\u0432\u0441\u0435 \u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435, \u043d\u043e \u0443\u0431\u0440\u0430\u043d kernel_initializer, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 <code>glorot_uniform<\/code>):<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, activation='relu', use_bias=False)) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0443\u0434\u0435\u0441\u043d\u043e:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hv\/wz\/oo\/hvwzoodkp6dxopq7pjkopeeuorw.png\"><\/p>\n<p>  <\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439, accuracy: 0.9999, loss(mse): 2e-04 \u043f\u043e\u0441\u043b\u0435 20 \u044d\u043f\u043e\u0445 \u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/4y\/io\/jt\/4yiojttsafqnf796ha6all0qmsy.png\"><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441 \u0441\u0438\u0433\u043c\u043e\u0439\u0434\u043e\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, activation='sigmoid', use_bias=False)) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u044f \u0443\u0436\u0435 \u043e\u0431\u0443\u0447\u0430\u043b \u0440\u0430\u043d\u044c\u0448\u0435, \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u2014 \u0437\u0434\u0435\u0441\u044c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d bias. \u041e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0435\u0435\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043f\u043b\u0430\u0442\u043e \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 50\u0439 \u044d\u043f\u043e\u0445\u0438, accuracy: 0.9970, loss: 0.01 \u043f\u043e\u0441\u043b\u0435 60 \u044d\u043f\u043e\u0445.<br \/>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u044f\u0442\u044c \u043d\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u0435\u0442:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_7\/fl\/o_\/_7flo_xh5gkgh8oennqthe2ymhk.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438 \u0435\u0449\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c tanh:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, activation='tanh', use_bias=False)) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0441 relu \u2014 accuracy: 0.9999, loss: 6e-04 \u043f\u043e\u0441\u043b\u0435 20 \u044d\u043f\u043e\u0445, \u043f\u0440\u0438\u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/m4\/ib\/xc\/m4ibxctlge5cxs7eqozjt5uwfsc.png\"><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sk\/r3\/p8\/skr3p8etvlatcf-mnc6q9sabtfk.png\"><\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u0435\u043d\u044f \u043c\u0443\u0447\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b sigmoid \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0418\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430.<br \/>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c BatchNormalization:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\">model = tf.keras.Sequential() model.add(tf.keras.Input(shape=(64,64,1))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64*64, activation='sigmoid', use_bias=False)) model.add(tf.keras.layers.BatchNormalization()) model.add(tf.keras.layers.Reshape(target_shape=(64,64,1)))<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0442\u0443\u0442 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043c\u0430\u0433\u0438\u044f. \u041d\u0430 13\u0439 \u044d\u043f\u043e\u0445\u0435 accuracy: 1.0. \u0418 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0433\u043d\u0435\u043d\u043d\u044b\u0435:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6x\/md\/di\/6xmddijppdnstc8ire1mxlcwkca.png\"><\/p>\n<p>  <\/p>\n<p>\u0418\u0438\u0438\u0438\u0438\u2026 \u043d\u0430 \u044d\u0442\u043e\u043c cliff-hanger&#8217;\u0435 \u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0443 \u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0438\u0431\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0443\u0436\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u0444\u0438\u0433\u0430 \u0442\u0435\u043a\u0441\u0442\u0430, \u0434\u0430 \u0438 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043d\u0430\u0434\u043e \u043e\u043d\u043e \u043a\u043e\u043c\u0443-\u0442\u043e \u0438\u043b\u0438 \u043d\u0435\u0442. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0431\u0443\u0434\u0443 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0437\u0430 \u043c\u0430\u0433\u0438\u044f \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0436\u0435 \u044d\u043d\u043a\u043e\u0434\u0435\u0440-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0447\u0435\u0441\u0442\u043d\u044b\u0439, \u0431\u0438\u0442\u044c\u0441\u044f \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u043e\u0431 \u0441\u0442\u043e\u043b. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<\/div>\n<p> \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\/post\/484016\/\"> https:\/\/habr.com\/ru\/post\/484016\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/484016\/\">\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 keras.io, \u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u043e\u0441\u044b\u043b\u043e\u0432 \u0442\u0430\u043c \u0437\u0432\u0443\u0447\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a: \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u044b \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u043d\u043e \u043f\u0440\u043e \u043d\u0438\u0445 \u0447\u0430\u0441\u0442\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0432 \u043e\u0431\u0443\u0447\u0430\u043b\u043a\u0430\u0445 \u0438 \u043d\u0430\u0440\u043e\u0434\u0443 \u0437\u0430\u0445\u043e\u0434\u0438\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043e\u0431\u0443\u0447\u0430\u043b\u043a\u0443 \u043f\u0440\u043e \u043d\u0438\u0445:<\/p>\n<p>  <\/p>\n<p><em>Their main claim to fame comes from being featured in many introductory machine learning classes available online. As a result, a lot of newcomers to the field absolutely love autoencoders and can&#8217;t get enough of them. This is the reason why this tutorial exists!<\/em><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0445 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u2014 \u043f\u043e\u0438\u0441\u043a \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439, \u0438 \u043b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0435\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d. <\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u0432 \u0435\u0441\u0442\u044c <strong>\u043e\u0447\u0435\u043d\u044c<\/strong> \u043c\u043d\u043e\u0433\u043e \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430\u043c, \u043d\u0430\u0444\u0438\u0433\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d? \u041d\u0443, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0447\u0438\u043d:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0421\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 3 \u0438\u043b\u0438 4, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0445 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438;<\/li>\n<li>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u2014 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u0430\u0434\u0430\u043b\u044c\u043d\u043e\u043c MNIST&#8217;\u0435 \u0441 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438 28\u044528;<\/li>\n<li>\u041d\u0430 \u043c\u043e\u0439 \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u2014 \u043e\u043d\u0438 \u043d\u0435 \u0432\u044b\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c;<\/li>\n<li>\u0418 \u0441\u0430\u043c\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u2014 \u043b\u0438\u0447\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u0438 \u0437\u0430\u043c\u0435\u043d\u0435 MNIST&#8217;\u0430 \u043d\u0430 <strong>\u0441\u0432\u043e\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u2014 \u043e\u043d\u043e \u0432\u0441\u0435 \u0442\u0443\u043f\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/strong>. <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043c\u043e\u0439 \u043f\u0443\u0442\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0448\u0438\u0448\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u043b\u043e\u0441\u043a\u0438\u0445 (\u043d\u0435 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0445) \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438\u0437 \u043c\u0430\u0441\u0441\u044b \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u0438 \u0432\u0442\u0443\u043f\u0443\u044e \u0435\u0435 \u0441\u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u2014 \u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0438 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0426\u0435\u043b\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443 \u0438, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<p>  <\/p>\n<p>\u042f \u043d\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u0432\u044b\u043a \u0432 \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435. \u0414\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 data scientists \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0441\u044f \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u0438\u043a\u043e\u0439, \u0430 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0438 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0441\u044f. <\/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-297153","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/297153","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=297153"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/297153\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=297153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=297153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=297153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}