{"id":498840,"date":"2026-10-15T21:19:27","date_gmt":"2026-10-15T18:19:27","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=498840"},"modified":"2026-10-15T21:19:27","modified_gmt":"2026-10-15T18:19:27","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=498840","title":{"rendered":"\u041a\u0430\u043a \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f upscale \u043d\u0430 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u0441 4 \u0413\u0411 \u0438 \u043d\u0435 \u0443\u043c\u0435\u0440\u0435\u0442\u044c"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/9c\/50\/f5\/9c50f55a7f539fcf62813cc6a56ae458.jpg\" width=\"1560\" height=\"880\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/9c\/50\/f5\/9c50f55a7f539fcf62813cc6a56ae458.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/9c\/50\/f5\/9c50f55a7f539fcf62813cc6a56ae458.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u0417\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0441\u0432\u043e\u0439 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u043e\u0440?<\/strong><\/p>\n<p>\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u044d\u043f\u043e\u0445\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u043e\u0442\u043e \u0438 \u0432\u0438\u0434\u0435\u043e \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043f\u043b\u0430\u0442\u043d\u044b\u043c\u0438 SaaS-\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u043b\u0438\u0431\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438. \u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0447\u044c \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u043e\u0431 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 &#8212; \u0431\u0443\u0434\u044c \u0442\u043e \u043e\u0446\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0441\u0435\u043c\u0435\u0439\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0441\u0441\u0435\u0442 \u0438\u043b\u0438 \u0430\u0440\u0445\u0438\u0432\u0430 \u0438\u043d\u0441\u0442\u0438\u0442\u0443\u0442\u0441\u043a\u0438\u0445 \u043f\u043b\u0435\u043d\u043e\u043a &#8212; \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u043e\u0432\u0435\u0440\u0438\u044f \u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041c\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0446\u0435\u043b\u044c: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u0438\u0445 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c. \u0413\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0443\u044e \u0440\u0435\u0437\u043a\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0435\u0444\u0435\u043a\u0442\u044b \u043f\u043b\u0435\u043d\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0446\u0430\u0440\u0430\u043f\u0438\u043d\u044b \u0438\u043b\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0441\u0434\u0432\u0438\u0433). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u0435\u0441\u0430\u043c \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u0447\u0435\u0433\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0435 API \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443\u0442.<\/p>\n<p><strong>\u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/strong><\/p>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443 <strong>supervised image-to-image translation <\/strong>(\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435) \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0442\u0440\u043e\u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p><strong>\u0412\u0445\u043e\u0434:<\/strong> \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f X<sub>LR <\/sub>\u2208R<sup>H\u00d7W\u00d73<\/sup> \u0441 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0448\u0443\u043c\u043e\u043c (\u0433\u0430\u0443\u0441\u0441\u043e\u0432 \u0448\u0443\u043c, \u00ab\u0441\u043e\u043b\u044c \u0438 \u043f\u0435\u0440\u0435\u0446\u00bb, \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u0438 \u0434\u0440.), \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u0434\u0435\u0444\u0435\u043a\u0442\u044b \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u043b\u0451\u043d\u043a\u0438 \u0438\u043b\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u043d\u0441\u043e\u0440\u0430.<\/p>\n<p><strong>\u0412\u044b\u0445\u043e\u0434:<\/strong> \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f Y<sub>HR <\/sub>\u2208R<sup>2H\u00d72W\u00d73<\/sup>, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e\u0435 \u043a \u044d\u0442\u0430\u043b\u043e\u043d\u0443.<\/p>\n<p><strong>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c:<\/strong> \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f &#8212; L1 (MAE) \u0434\u043b\u044f \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 + perceptual loss (\u043d\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u0445 \u043f\u0440\u0435\u0434\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 VGG) \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.<\/p>\n<p><strong>\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430:<\/strong> PSNR (\u043f\u0438\u043a\u043e\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043a \u0448\u0443\u043c\u0443) \u0438 SSIM (\u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u0430) \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043f\u0443\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0443\u043b\u0443\u0447\u0448\u0430\u0442\u043e\u0440\u0430. \u042d\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 GAN-\u0441\u0435\u0442\u0435\u0439 \u0438 \u0434\u0438\u0444\u0444\u0443\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f. \u041c\u044b \u043f\u0440\u043e\u0439\u0434\u0435\u043c \u043f\u043e \u0432\u0441\u0435\u043c \u0433\u0440\u0430\u0431\u043b\u044f\u043c: \u043e\u0442 \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0443\u044e\u0449\u0438\u0445 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0434\u043e \u0441\u0445\u0432\u0430\u0442\u043e\u043a \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 <em>CUDA out of memory<\/em> \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0442\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 4K-\u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0435.<\/p>\n<p><strong>\u0416\u0435\u043b\u0435\u0437\u043e<\/strong><\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043d\u043e\u0443\u0442\u0431\u0443\u043a MSI Katana GF66 11UD, \u0435\u0433\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 <a href=\"https:\/\/storage-asset.msi.com\/excelSku\/ru\/nb\/Katana%20GF66%2011UD-873XRU.pdf\">\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<strong>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<strong>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f ML-\u0437\u0430\u0434\u0430\u0447<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0\u0412\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0NVIDIA GeForce <\/p>\n<p align=\"left\">\u00a0RTX 3050 Ti <\/p>\n<p align=\"left\">\u00a0Laptop GPU (4 <\/p>\n<p align=\"left\">\u00a0\u0413\u0411 GDDR6)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0444\u0430\u043a\u0442\u043e\u0440. \u041f\u0430\u043c\u044f\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0430\u043b\u043e \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435. \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0449\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u0445.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0447\u0438\u043f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0GA106 \/ Ampere<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 Tensor Cores \u0434\u043b\u044f FP16\/BF16, \u0447\u0442\u043e \u0441\u043f\u0430\u0441\u0430\u0435\u0442 \u043e\u0442 OOM \u0446\u0435\u043d\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0442\u0435\u0440\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u0430\u044f \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c GPU <\/p>\n<p align=\"left\">\u00a0(TGP)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a060 \u0412\u0442 (Base), \u0434\u043e <\/p>\n<p align=\"left\">\u00a075 \u0412\u0442 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c <\/p>\n<p align=\"left\">\u00a0Dynamic Boost 2.0<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u043f\u043b\u043e\u0432\u043e\u0439 \u043f\u0430\u043a\u0435\u0442. \u0412 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u043f\u043e\u0434 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u043a\u0430\u0440\u0442\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u043f\u0440\u0435\u0442\u0441\u044f \u0432 \u043b\u0438\u043c\u0438\u0442 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0431\u0440\u043e\u0441\u0438\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u044b.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0Intel Core i7-<\/p>\n<p align=\"left\">\u00a011800H (8 \u044f\u0434\u0435\u0440 \/ <\/p>\n<p align=\"left\">\u00a016 \u043f\u043e\u0442\u043e\u043a\u043e\u0432)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u041e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 CPU \u0434\u043b\u044f \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e FFmpeg \u0438 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433\u0430 \u043a\u0430\u0434\u0440\u043e\u0432. \u041d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a032 \u0413\u0411 DDR43200 (\u0437\u0430\u043d\u044f\u0442\u044b \u043e\u0431\u0430 \u0441\u043b\u043e\u0442\u0430)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0442\u0447\u0438 \u043a\u0430\u0434\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0434\u0430\u0447\u0435\u0439 \u043d\u0430 GPU.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u043e \u0436\u0435\u043b\u0435\u0437\u043e &#8212; \u0436\u0435\u043b\u0435\u0437\u043e\u043c, \u0430 \u0434\u044c\u044f\u0432\u043e\u043b \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445, \u0438 \u044d\u0442\u043e \u0441\u043e\u0444\u0442. \u0421 \u043d\u0438\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u043e\u0444\u0442, \u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043d\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 Windows \u0438 \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0432\u0435\u0437\u043b\u043e, \u0447\u0442\u043e \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430 &#8212; \u043e\u0442 NVIDIA.<\/p>\n<p>\u0414\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442 AMD \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 CUDA \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c ROCM, \u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0444\u0442\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441\u0445\u043e\u0436\u0430.<\/p>\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/strong><\/p>\n<p>\u041d\u0430 Windows \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u043d\u0438\u0447\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c Python, \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Microsoft.<\/p>\n<p><strong>1. \u0414\u0440\u0430\u0439\u0432\u0435\u0440 NVIDIA<\/strong><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u0432\u0435\u0436\u0438\u0439 Game Ready \u0438\u043b\u0438 Studio \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.nvidia.com\/en-us\/drivers\/\">NVIDIA. <\/a><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c:<\/strong> \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u0430\u0451\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a GPU \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 CUDA Runtime. \u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c CUDA Toolkit \u0434\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 CUDA, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 PyTorch.<\/p>\n<p><strong>\u0412\u0430\u0436\u043d\u043e:<\/strong> \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 CUDA 13.0 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a CUDA Toolkit \u043d\u0430 Windows. \u0415\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 NVIDIA \u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Toolkit.<\/p>\n<p><strong>2. \u0412\u044b\u0431\u043e\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 CUDA Toolkit<\/strong><\/p>\n<p><strong>\u0413\u0434\u0435 \u0431\u0440\u0430\u0442\u044c<\/strong><\/p>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0439\u0442\u0435 CUDA Toolkit \u0441 <a href=\"https:\/\/developer.nvidia.com\/cuda\/toolkit\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 NVIDIA.<\/a> \u0412\u0430\u0436\u043d\u043e <strong>\u043d\u0435<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u0430: \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438\u043b\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u043b\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u043e\u043c\u0430\u044e\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 cuDNN \u0438 PyTorch.<\/p>\n<p><strong>\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e CUDA<\/strong><\/p>\n<p>\u0414\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u043d\u0430 Windows \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u00ab\u0441\u0430\u043c\u0443\u044e \u043d\u043e\u0432\u0443\u044e\u00bb, \u0430 \u043d\u0430 <strong>\u0432\u0435\u0440\u0441\u0438\u044e, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 PyTorch<\/strong>. \u0427\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b:<\/p>\n<p>1. <strong>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 GPU.<\/strong> \u0423\u0437\u043d\u0430\u0439\u0442\u0435 Compute Capability \u0432\u0430\u0448\u0435\u0439 \u043a\u0430\u0440\u0442\u044b \u043d\u0430 <a href=\"https:\/\/developer.nvidia.com\/cuda-gpus\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 NVIDIA<\/a>. RTX 3050 Ti (Ampere) \u0438\u043c\u0435\u0435\u0442 Compute Capability 8.6.<\/p>\n<p>2. <strong>\u0421\u0432\u0435\u0440\u044c\u0442\u0435\u0441\u044c \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 PyTorch.<\/strong> \u041d\u0430 <a href=\"https:\/\/pytorch.org\/get-started\/locally\/\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 PyTorch <\/a>\u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0448\u0443 \u041e\u0421, \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0438 \u0432\u0435\u0440\u0441\u0438\u044e CUDA &#8212; \u0441\u0430\u0439\u0442 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b.<\/p>\n<p>3. <strong>\u0412\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e CUDA, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 wheel\u043f\u0430\u043a\u0435\u0442\u044b PyTorch.<\/strong> \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e CUDA 13.0.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 CUDA 12.x \u0438\u043b\u0438 11.x, \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043b\u0438\u0431\u043e:<\/p>\n<p>\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c PyTorch \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 (\u0447\u0442\u043e \u043d\u0430 Windows &#8212; \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u043e\u043b\u044c \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c),<\/p>\n<p>\u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 PyTorch, \u0433\u0434\u0435 \u043d\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439.<\/p>\n<p><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e CUDA 13.0:<\/strong><\/p>\n<p><strong>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 PyTorch.<\/strong> \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"http:\/\/download.pytorch.org\"><em>download.pytorch.org<\/em><\/a> \u0435\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 CUDA-\u0431\u0438\u043b\u0434\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u044d\u0442\u0443 \u0432\u0435\u0440\u0441\u0438\u044e. \u042d\u0442\u043e \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c PyTorch \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 RTX 3050 Ti.<\/strong> \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 Ampere (RTX 30xx) \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 CUDA 13, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 (Tensor Cores).<\/p>\n<p><strong>\u0411\u0430\u043b\u0430\u043d\u0441 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439.<\/strong> CUDA 13 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438.<\/p>\n<p><strong>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 cuDNN.<\/strong> \u0412\u0435\u0440\u0441\u0438\u0438 cuDNN, \u0438\u0434\u0443\u0449\u0438\u0435 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 CUDA 13 \u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 PyTorch \u0438 TorchVision.<\/p>\n<p><strong>\u041d\u044e\u0430\u043d\u0441:<\/strong> \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b CUDA. \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 PyTorch \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 CUDA-\u044f\u0434\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u0441\u043d\u044f\u0442\u044c \u0433\u0430\u043b\u043e\u0447\u043a\u0438 \u0441 \u00abCUDA Samples\u00bb, \u00abCUDA Documentation\u00bb \u0438 \u00abVisual Studio Integration\u00bb \u2014 \u044d\u0442\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0435\u0441\u0442\u043e \u0438 \u0443\u0441\u043a\u043e\u0440\u0438\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443.<\/p>\n<p><strong>\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 CUDA Toolkit \u043d\u0430 Windows<\/strong><\/p>\n<p>1. <strong>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a<\/strong> \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043c \u00abCustom\u00bb (\u043d\u0435 \u00abExpress\u00bb), \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f.<\/p>\n<p>2. <strong>\u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/strong> \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u043c\u0438:<\/p>\n<p>CUDA Runtime (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e);<\/p>\n<p>Developer Tools (\u0435\u0441\u043b\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c CUDA-\u044f\u0434\u0440\u0430); cuDNN (\u0435\u0441\u043b\u0438 \u043e\u043d \u0438\u0434\u0451\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430 &#8212; \u0438\u043d\u0430\u0447\u0435 \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e).<\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/strong> \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 CUDA 13.0 \u043f\u0443\u043d\u043a\u0442 \u00abDriver Components\u00bb \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 &#8212; \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e (\u0441\u043c. \u0448\u0430\u0433 1).<\/p>\n<p>3. <strong>\u041f\u0443\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/strong> \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (<em>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0<\/em>). \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0438 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.<\/p>\n<p>4. <strong>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/strong> \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b:<\/p>\n<p>\u0415\u0441\u043b\u0438 <em>nvcc<\/em> \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <em>PATH<\/em>:<\/p>\n<p><em>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\bin<\/em><\/p>\n<p><em>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\libnvvp <\/em>(\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430).<\/p>\n<p><strong>\u0412\u0430\u0436\u043d\u043e:<\/strong><\/p>\n<p>\u041d\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439 CUDA \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0431\u0435\u0437 \u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u043f\u0443\u0442\u0435\u0439 &#8212; \u043e\u0434\u043d\u0430 \u0438\u0437 \u0447\u0430\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u043e\u0448\u0438\u0431\u043e\u043a \u00abCUDA not found\u00bb \u0438\u043b\u0438 \u00abMismatch between runtime and driver\u00bb.<\/p>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0439\u0442\u0435 CUDA Toolkit \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 NVIDIA. <strong>\u0412\u0430\u0436\u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u0430<\/strong>: \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438\u043b\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u043b\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u043e\u043c\u0430\u044e\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 cuDNN \u0438 PyTorch.<\/p>\n<p>\u041d\u0435 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0439\u0442\u0435 CUDA Toolkit, cuDNN \u0438 \u0432\u0435\u0440\u0441\u0438\u0438 PyTorch \u00ab\u043d\u0430 \u0433\u043b\u0430\u0437\u00bb. \u0412\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u0435\u0440\u044f\u0439\u0442\u0435\u0441\u044c \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 PyTorch. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c CUDA 13.0, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0441\u043a\u0430\u0447\u0430\u043d\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435 wheel-\u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432\u043c\u0435\u0441\u0442\u0435.<\/p>\n<p><strong>3. Microsoft Visual C++ Redistributable<\/strong><\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0438\u0434\u0430 <em>ImportError: DLL load failed<\/em> &#8212; \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a VC++.<\/p>\n<p>\u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e x64 \u0441 <a href=\"https:\/\/learn.microsoft.com\/ru-ru\/cpp\/windows\/latest-supported-vc-redist?view=msvc-170\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 Microsoft<\/a>. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e OpenCV, Torch \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f: \u0438\u043c \u043d\u0443\u0436\u043d\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 DLL \u043e\u0442 Microsoft CRT.<\/p>\n<p><strong>\u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 uv<\/strong><\/p>\n<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 <em>pip install -r requirements.txt<\/em> \u043d\u0430 Windows \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u044b\u0442\u043a\u0443 \u0438\u0437-\u0437\u0430 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 wheel-\u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0447\u0430\u0441\u0442\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <strong>uv<\/strong> &#8212; \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 Rust: \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0430\u0437\u044b \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0437\u043c \u0432\u0435\u0440\u0441\u0438\u0439.<\/p>\n<p>\u041d\u0430\u0448 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (<a href=\"https:\/\/github.com\/AlexZ0494\/training\/blob\/master\/pyproject.toml\">pyproject.toml)<\/a> \u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u0432\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430:<\/p>\n<p>1. <strong>\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 NumPy (&lt;2.0).<\/strong> \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432\u0440\u043e\u0434\u0435 <em>scikit-image<\/em> \u0438 \u0441\u0442\u0430\u0440\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 <em>opencvpython<\/em> \u0435\u0449\u0451 \u043d\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0434 \u043b\u043e\u043c\u0430\u044e\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f NumPy 2.0. \u0412 <em>pyproject.toml<\/em> \u044d\u0442\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c <em>numpy&lt;2.0<\/em>.<\/p>\n<p>2. <strong>\u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 PyTorch.<\/strong> \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 PyPI \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 CPU-only \u0431\u0438\u043b\u0434\u044b. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 RTX 3050 Ti, \u043c\u044b \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 PyTorch \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 CUDA 13.0:<\/p>\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 uv \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 <a href=\"https:\/\/docs.astral.sh\/uv\/getting-started\/\">uv <\/a>\u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d:<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442:<\/p>\n<p>\u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<\/p>\n<p>\u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443 <em>.venv<\/em>;<\/p>\n<p>\u0441\u043a\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 PyTorch \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u0432\u0430\u0448\u0443 \u041e\u0421 \u0438 CUDA 13.0; \u0443\u0441\u043a\u043e\u0440\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u043c\u0443 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432; \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u043c.<\/p>\n<p><strong>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430: \u043f\u0430\u0440\u044b LR\/HR \u0438 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0448\u0443\u043c\u0430\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 train \/ valid \/ test<\/strong><\/p>\n<p>\u0414\u0430\u0442\u0430\u0441\u0435\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0435 <em>SRDataset<\/em> (<a href=\"https:\/\/github.com\/AlexZ0494\/training\/blob\/master\/app\/models\/dataset.py\">app\/models\/<\/a><a href=\"http:\/\/dataset.py\">dataset.py<\/a>) &#8212; \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 <a href=\"http:\/\/torch.utils.data\"><em>torch.utils.data<\/em><\/a><em>.Dataset<\/em>. \u041d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430:<\/p>\n<p><em>lr_dir<\/em> &#8212; \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f (low-res, LR); <em>hr_dir<\/em> &#8212; \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f (high-res, HR).<\/p>\n<p>\u041a\u043b\u0430\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043e\u0431\u043e\u0438\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0438\u0445 \u0438 \u043e\u0442\u0434\u0430\u0451\u0442 \u043f\u0430\u0440\u044b <em>(lr_image, hr_image)<\/em> \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <em>cnt_im_start<\/em> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (\u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0435 <em>cnt_im_start<\/em> \u0444\u0430\u0439\u043b\u043e\u0432), \u0430 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 <em>cnt_im_end <\/em>\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 <em>cnt_im_end<\/em> \u0444\u0430\u0439\u043b\u043e\u0432 \u2014 \u044d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0435\u0439 \u0432 \u043e\u0434\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435.<\/p>\n<p><strong>\u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>\u041d\u0430\u0431\u043e\u0440<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<strong>\u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0438<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<strong>\u041e\u0431\u044a\u0451\u043c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>Train (\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<em>lr_dir<\/em> \/ <em>hr_dir<\/em><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a012 000 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. \u0417\u0430\u0448\u0443\u043c\u043b\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>Valid <\/strong><\/p>\n<p align=\"left\">\u00a0<strong>(\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<em>lv_dir<\/em> \/ <em>hv_dir<\/em><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0200 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u041e\u0446\u0435\u043d\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u044d\u043f\u043e\u0445\u0438. \u0417\u0430\u0448\u0443\u043c\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043c\u0435\u0440\u0435 \u0440\u043e\u0441\u0442\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>Test (\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<em>test_lr<\/em> \/ <em>test_hr<\/em><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0438 \u0432 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438, \u043d\u0438 \u0432 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u043f\u0430\u043f\u043a\u0435 <em>hr_dir<\/em> &#8212; \u043f\u043e\u0440\u044f\u0434\u043a\u0430 24 000. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <em>cnt_im_start<\/em> \u0438 <em>cnt_im_end<\/em> \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430.<\/p>\n<pre><code class=\"python\">class SRDataset(Dataset):def __init__(self, lr_dir, hr_dir, cnt_im_start, cnt_im_end=None,transform=None, noise_augmenter=None):llr_dir = sorted(os.listdir(lr_dir))lhr_dir = sorted(os.listdir(hr_dir))if cnt_im_end is None:self.lr_paths = llr_dir[:cnt_im_start]self.hr_paths = lhr_dir[:cnt_im_start]else:self.lr_paths = llr_dir[:cnt_im_start] + llr_dir[-cnt_im_end:]self.hr_paths = lhr_dir[:cnt_im_start] + lhr_dir[-cnt_im_end:]self.transform = transformself.noise_augmenter = noise_augmenter<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<p> <strong>Upscaler \u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0448\u0443\u043c\u0435<\/strong><\/p>\n<p>LR-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 <em>NoiseAugmenter<\/em> (<a href=\"https:\/\/github.com\/AlexZ0494\/training\/blob\/master\/app\/noise\/__init__.py\">app\/noise\/_init_.py)<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u043e\u0432 \u0448\u0443\u043c\u0430:<\/p>\n<p>1. <strong>\u0413\u0430\u0443\u0441\u0441\u043e\u0432 \u0448\u0443\u043c (Gaussian Noise):<\/strong> \u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e \u0448\u0443\u043c\u0430. \u041e\u043d \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044e \u0438 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043c\u0435\u0445\u0438 \u0441\u0435\u043d\u0441\u043e\u0440\u0430 \u043a\u0430\u043c\u0435\u0440\u044b \u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438 \u0441\u0436\u0430\u0442\u0438\u0438 JPEG \u0441 \u043d\u0438\u0437\u043a\u0438\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/09\/e8\/e4\/09e8e4c4b11ae38e2391927426b58035.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/09\/e8\/e4\/09e8e4c4b11ae38e2391927426b58035.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/09\/e8\/e4\/09e8e4c4b11ae38e2391927426b58035.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/72\/2c\/a3\/722ca35e20df38f6523dfe4bc4ba11a4.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/72\/2c\/a3\/722ca35e20df38f6523dfe4bc4ba11a4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/72\/2c\/a3\/722ca35e20df38f6523dfe4bc4ba11a4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/5d\/73\/ec\/5d73ec3f8edaeeb73899090b42930a71.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/5d\/73\/ec\/5d73ec3f8edaeeb73899090b42930a71.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/5d\/73\/ec\/5d73ec3f8edaeeb73899090b42930a71.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/2e\/30\/92\/2e309250c1913f5808abfaa6e48353b2.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/2e\/30\/92\/2e309250c1913f5808abfaa6e48353b2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/2e\/30\/92\/2e309250c1913f5808abfaa6e48353b2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>2. <strong>\u0421\u043e\u043b\u044c \u0438 \u043f\u0435\u0440\u0435\u0446 (Salt &amp; Pepper):<\/strong> \u042d\u0442\u043e\u0442 \u0448\u0443\u043c \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0431\u0435\u043b\u044b\u0445 \u0438 \u0447\u0435\u0440\u043d\u044b\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0440\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u0438 \u043e\u043d \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u043b\u0435\u043d\u043a\u0438: \u0446\u0430\u0440\u0430\u043f\u0438\u043d\u044b, \u043f\u044b\u043b\u044c, \u0431\u0438\u0442\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u0442\u0430\u0440\u043e\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/71\/06\/cf\/7106cf8f0032f8a5e93d01ef967d395f.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/71\/06\/cf\/7106cf8f0032f8a5e93d01ef967d395f.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/71\/06\/cf\/7106cf8f0032f8a5e93d01ef967d395f.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/2e\/fc\/d1\/2efcd16fc561bac514495fd0333f5b0b.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/2e\/fc\/d1\/2efcd16fc561bac514495fd0333f5b0b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/2e\/fc\/d1\/2efcd16fc561bac514495fd0333f5b0b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/a1\/7e\/a5\/a17ea5807fe61d605384be0e5c669f73.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/a1\/7e\/a5\/a17ea5807fe61d605384be0e5c669f73.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/a1\/7e\/a5\/a17ea5807fe61d605384be0e5c669f73.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/da\/6a\/55\/da6a55b9d3bc7339763d201447865195.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"480\" height=\"269\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/da\/6a\/55\/da6a55b9d3bc7339763d201447865195.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/da\/6a\/55\/da6a55b9d3bc7339763d201447865195.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>3. <strong>\u041a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 (Color Quantization):<\/strong> \u042d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438. \u041c\u043e\u0434\u0435\u043b\u044c \u0443\u0447\u0438\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0432\u043d\u044b\u0435 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u044b \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b \u0438\u0437-\u0437\u0430 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0446\u0432\u0435\u0442\u043e\u0432. \u042d\u0442\u043e\u0442 \u0448\u0443\u043c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u0435\u043d \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u0431\u0430 \u0438 \u043e\u0434\u043d\u043e\u0442\u043e\u043d\u043d\u044b\u0445 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/31\/7c\/64\/317c644e40d05a5046b43583fd450e86.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/31\/7c\/64\/317c644e40d05a5046b43583fd450e86.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/31\/7c\/64\/317c644e40d05a5046b43583fd450e86.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/a0\/9a\/7a\/a09a7a3779e98a169780775bc23e8e75.webp\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/a0\/9a\/7a\/a09a7a3779e98a169780775bc23e8e75.webp 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/a0\/9a\/7a\/a09a7a3779e98a169780775bc23e8e75.webp 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/f1\/9e\/90\/f19e90c2d03e618c4473b124d56b74d4.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/f1\/9e\/90\/f19e90c2d03e618c4473b124d56b74d4.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/f1\/9e\/90\/f19e90c2d03e618c4473b124d56b74d4.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/44\/1f\/6f\/441f6ff6280f8beb6937dfce5285d484.webp\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"479\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/44\/1f\/6f\/441f6ff6280f8beb6937dfce5285d484.webp 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/44\/1f\/6f\/441f6ff6280f8beb6937dfce5285d484.webp 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>4. <strong>\u0426\u0432\u0435\u0442\u043d\u043e\u0439 \u0441\u043e\u043b\u044c \u0438 \u043f\u0435\u0440\u0435\u0446 (Color Salt &amp; Pepper):<\/strong> \u041e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e Salt &amp; Pepper \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0435\u043b\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u043d\u044b\u043c\u0438, \u043d\u043e \u0438 \u0446\u0432\u0435\u0442\u043d\u044b\u043c\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u043c\u0438. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0435\u0444\u0435\u043a\u0442\u044b \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043b\u0435\u043d\u043e\u043a, \u043a\u043e\u0433\u0434\u0430 \u0441\u0432\u0435\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u044b\u043b\u0438\u043d\u043a\u0438 \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u044f\u0437\u043d\u0435\u043d\u0438\u044f \u044d\u043c\u0443\u043b\u044c\u0441\u0438\u0438.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d9\/34\/7d\/d9347dfea8110ae28920f59b4ea217f3.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d9\/34\/7d\/d9347dfea8110ae28920f59b4ea217f3.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d9\/34\/7d\/d9347dfea8110ae28920f59b4ea217f3.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/f8\/35\/7e\/f8357e67305e3b6e4a8beb720c3014ae.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"480\" height=\"269\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/f8\/35\/7e\/f8357e67305e3b6e4a8beb720c3014ae.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/f8\/35\/7e\/f8357e67305e3b6e4a8beb720c3014ae.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/5b\/9b\/d6\/5b9bd67da3157704ea9fd8d65b482bd8.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/5b\/9b\/d6\/5b9bd67da3157704ea9fd8d65b482bd8.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/5b\/9b\/d6\/5b9bd67da3157704ea9fd8d65b482bd8.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/96\/25\/79\/9625798a8dd1047f759793af4a6cd9d6.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/96\/25\/79\/9625798a8dd1047f759793af4a6cd9d6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/96\/25\/79\/9625798a8dd1047f759793af4a6cd9d6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0432 \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0448\u0443\u043c\u044b \u0438 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/37\/7e\/d2377e4323dc951f2225e84b700b74ac.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d2\/37\/7e\/d2377e4323dc951f2225e84b700b74ac.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/37\/7e\/d2377e4323dc951f2225e84b700b74ac.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/85\/a8\/b4\/85a8b49fb9ce75625cf8c3773c843e8e.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"476\" height=\"271\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/85\/a8\/b4\/85a8b49fb9ce75625cf8c3773c843e8e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/85\/a8\/b4\/85a8b49fb9ce75625cf8c3773c843e8e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d8\/34\/94\/d8349433112bda262574b1935ccbe495.jpg\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d8\/34\/94\/d8349433112bda262574b1935ccbe495.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d8\/34\/94\/d8349433112bda262574b1935ccbe495.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/de\/a8\/fa\/dea8fab826ce9625b0ab3cd278e21fca.png\" alt=\" \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" title=\" \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\" width=\"480\" height=\"270\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/de\/a8\/fa\/dea8fab826ce9625b0ab3cd278e21fca.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/de\/a8\/fa\/dea8fab826ce9625b0ab3cd278e21fca.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption> \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<blockquote>\n<p><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e:<\/strong> \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 DIV2K \u043e\u0431\u0443\u0447\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 JPEG-\u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442. \u041d\u0430\u0448 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0448\u0443\u043c\u0430\u043c\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0435\u0444\u0435\u043a\u0442\u0430\u043c\u0438.<\/p>\n<\/blockquote>\n<p>\u0412\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 <a href=\"https:\/\/github.com\/AlexZ0494\/training\/blob\/master\/app\/noise\/noises.py\">app\/noise\/<\/a><a href=\"http:\/\/noises.py\">noises.py<\/a> \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 <em>numpy.ndarray<\/em>. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <em>prob<\/em> \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0448\u0443\u043c\u0430: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f <em>salt_paper<\/em> \u044d\u0442\u043e \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0448\u0443\u043c\u043b\u0435\u043d\u0438\u044f (\u0434\u043e\u043b\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044e), \u0434\u043b\u044f <em>gaus<\/em> &#8212; \u0440\u0430\u0437\u043c\u0435\u0440 \u044f\u0434\u0440\u0430 \u0440\u0430\u0437\u043c\u044b\u0442\u0438\u044f, \u0434\u043b\u044f <em>pixelated<\/em> &#8212; \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 12 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0432 12 \u0440\u0430\u0437 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u044d\u0444\u0444\u0435\u043a\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u0438\u0437\u0430\u0446\u0438\u0438). \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043c\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 <em>prob = 12<\/em>.<\/p>\n<p><strong>\u041f\u0443\u0442\u044c \u0431\u043e\u043b\u0438<\/strong><\/p>\n<p><strong>\u041f\u0430\u0434\u0435\u043d\u0438\u044f cuDNN \u043f\u0440\u0438 \u0441\u0432\u0435\u0440\u0442\u043a\u0430\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>\u041e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043a\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438.<\/p>\n<p><em>CUDNN_STATUS_EXECUTION_FAILED<\/em> \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 <em>loss.backward()<\/em> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440 CUDA \u043d\u0435 \u0441\u043c\u043e\u0433 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044f\u0434\u0440\u043e \u0441\u0432\u0435\u0440\u0442\u043a\u0438 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0435.<\/p>\n<p>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 (<em>out of memory<\/em>), \u0437\u0434\u0435\u0441\u044c \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430, \u043d\u043e \u0441\u0430\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a (Streaming Multiprocessor) \u0432\u044b\u0434\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044f\u0434\u0440\u0430. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<p><strong>\u041d\u0435\u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430:<\/strong> PyTorch \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u043b\u0430\u0433 <em>torch.backends.cudnn.benchmark = True<\/em>, \u0447\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0432\u0435\u0440\u0442\u043a\u0438 \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435\u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u0435\u043d\u0437\u043e\u0440\u043e\u0432 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b GPU.<\/p>\n<p><strong>\u041d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 cuDNN:<\/strong> \u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 NVIDIA \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 cuDNN, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 PyTorch, \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b.<\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u0433\u0440\u0435\u0432 Memory Junction:<\/strong> \u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0438\u043f\u043e\u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 (<em>Memory Junction<\/em>). \u041f\u0440\u0438 \u043d\u0430\u0433\u0440\u0435\u0432\u0435 \u0434\u043e 95\u00b0C\u2013100\u00b0C \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0430\u043a\u0442\u044b \u0448\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0436\u0435\u043b\u0435\u0437\u0430.<\/p>\n<p><strong>\u0427\u0438\u0441\u043b\u0435\u043d\u043d\u0430\u044f \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c:<\/strong> \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 loss \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 NaN \u0438\u043b\u0438 Inf, \u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u043a \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0431\u043e\u0439 \u044f\u0434\u0440\u0430.<\/p>\n<p><strong> \u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c:<\/strong> \u0411\u0438\u0442\u044b\u0439 \u043a\u044d\u0448 L2\/L3 \u043d\u0430 GPU \u0438\u043b\u0438 \u0434\u0435\u0444\u0435\u043a\u0442\u043d\u044b\u0435 \u0447\u0438\u043f\u044b \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>\u041f\u043b\u0430\u043d \u043b\u0435\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438:<\/p>\n<p>1. <strong>\u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438\u043d\u0433 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0437\u043c:<\/strong> \u042d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u0435\u0440\u0432\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u041e\u043d\u043e \u043b\u0435\u0447\u0438\u0442 ~70% \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u0430\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u043e\u0448\u0438\u0431\u043a\u0430\u043c cuDNN. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e PyTorch \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0432\u0435\u0440\u0442\u043a\u0443 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u043d\u0437\u043e\u0440\u0430. \u0424\u043b\u0430\u0433 <em>deterministic=True<\/em> \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0435\u043c\u0443 \u0440\u0438\u0441\u043a\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e.<\/p>\n<p>2. <strong>\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043a\u044d\u0448 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u044f\u0434\u0435\u0440 PyTorch:<\/strong> \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443<\/p>\n<p><em>~\/.cache\/torch\/<\/em><\/p>\n<p>3. <strong>\u041f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b:<\/strong> \u0414\u0435\u043b\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <strong>CUDA Toolkit<\/strong> \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 <strong>Game Ready<\/strong>, \u0430 \u043d\u0435 Studio.<\/p>\n<p>4. <strong>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b:<\/strong> \u041e\u0448\u0438\u0431\u043a\u0430 \u0447\u0430\u0441\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043f\u0435\u0440\u0435\u0433\u0440\u0435\u0432\u0430 \u0447\u0438\u043f\u043e\u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 (<em>Memory Junction<\/em>), \u0430 \u043d\u0435 \u0432\u0441\u0435\u0433\u043e GPU. \u041c\u044b \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0438\u0437 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 \u0437\u0430\u0434\u0430\u0447, \u043d\u043e \u043b\u0443\u0447\u0448\u0435 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044e\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/ce\/81\/02\/ce81025e5d03da555cb71a1968006066.webp\" width=\"1004\" height=\"655\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/ce\/81\/02\/ce81025e5d03da555cb71a1968006066.webp 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/ce\/81\/02\/ce81025e5d03da555cb71a1968006066.webp 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<blockquote>\n<p><strong>\u0412\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441:<\/strong> \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 Memory Junction \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u0430! \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u044f\u0434\u0440\u0430 GPU \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f (~80\u00b0C), \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0436\u0435 \u0437\u0430 95\u00b0C. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u0440\u043e\u0441 \u0447\u0430\u0441\u0442\u043e\u0442 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u0435\u043d, \u0438 \u044f\u0434\u0440\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443.<\/p>\n<\/blockquote>\n<p><strong>\u041a\u043b\u0430\u0441\u0441\u0438\u043a\u0430 \u0436\u0430\u043d\u0440\u0430 (torch.AcceleratorError: CUDA error: out of memory) \u0438 Memory Leak \u0432 \u0446\u0438\u043a\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/strong><\/p>\n<p>\u041e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438. \u041e\u043d\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e: \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u044c (VRAM) \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0430.<\/p>\n<p>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 <em>CUDNN_STATUS_EXECUTION_FAILED<\/em>, \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041d\u043e \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0435 \u0442\u0430\u043a \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430, \u043a\u0430\u043a \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u043e \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u044d\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f:<\/p>\n<p>1. <strong>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0438:<\/strong> \u0412\u0435\u0441\u0430 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u0438 \u0438\u0445 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u044b (<em>parameters<\/em>, <em>gradients<\/em>). \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442.<\/p>\n<p>2. <strong>\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 (Activations):<\/strong> \u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043b\u043e\u044f. \u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u00ab\u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u044b\u0439\u00bb \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442. \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0430\u0442\u0447\u0430, \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>3. <strong>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/strong> \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Adam \u0445\u0440\u0430\u043d\u0438\u0442 \u0434\u0432\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043d\u0437\u043e\u0440\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 (v \u0438 m). SGD \u0431\u0435\u0437 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u043d\u043e\u043b\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>4. <strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f VRAM:<\/strong> \u041f\u0430\u043c\u044f\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430, \u043d\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u043b\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<\/p>\n<p>5. <strong>\u041a\u044d\u0448 PyTorch:<\/strong> \u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u0435\u0440\u0436\u0438\u0442 \u0447\u0430\u0441\u0442\u044c \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u043e \u0437\u0430\u043f\u0430\u0441. \u0412\u044b\u0437\u043e\u0432 <em>torch.cuda.empty_cache()<\/em> \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0451 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043d\u043e \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435.<\/p>\n<p>\u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u0442\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f:<\/p>\n<p>1. <strong>\u0423\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0430\u043f\u043f\u0435\u0442\u0438\u0442 \u0441\u0435\u0442\u0438:<\/strong> \u0414\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0430\u043f\u043f\u0435\u0442\u0438\u0442\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c <em>batch_size<\/em>, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 <em>batch_size = 6<\/em>.<\/p>\n<p>2. <strong>\u0427\u0438\u0441\u0442\u0438\u043c \u0442\u0435\u043d\u0437\u043e\u0440\u044b \u0432\u043d\u0443\u0442\u0440\u0438 DataLoader:<\/strong> \u0421\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0443\u0442\u0435\u0447\u0435\u043a \u2014 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0445 \u0438\u0437 <em>DataLoader<\/em>. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 <em>for lr_imgs, hr_imgs in DataLoader<\/em>, PyTorch \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0442\u0435\u043d\u0437\u043e\u0440\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0430\u0442\u0447\u0430. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u043d\u0438\u043c \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043e\u043a (<em>del<\/em>), \u044d\u0442\u0438 \u0442\u0435\u043d\u0437\u043e\u0440\u044b \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u0438\u0441\u0435\u0442\u044c \u0432 Python-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u0443\u0441\u043e\u0440\u0430. \u0414\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0437\u043e\u0432 \u0432 \u043a\u043e\u0434\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <em>del lr_imgs, hr_imgs, loss<\/em>, \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u043b\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438. <\/p>\n<blockquote>\n<p><strong>\u0412\u0430\u0436\u043d\u043e:<\/strong> \u043e\u0434\u043d\u043e\u0433\u043e del \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438. Python-\u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e. \u041c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c gc.collect() \u043f\u043e\u0441\u043b\u0435 del &#8212; \u044d\u0442\u043e \u0444\u043e\u0440\u0441\u0438\u0440\u0443\u0435\u0442 \u0441\u0431\u043e\u0440\u043a\u0443 \u043c\u0443\u0441\u043e\u0440\u0430 \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0442\u0435\u043d\u0437\u043e\u0440\u044b, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e torch.cuda.empty_cache() \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435.<\/p>\n<\/blockquote>\n<p>3. <strong>\u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u043a\u044d\u0448\u0430 CUDA-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430:<\/strong> \u041f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c <em>torch.cuda.empty_cache()<\/em>, \u0447\u0442\u043e\u0431\u044b \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043a\u044d\u0448 CUDA \u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u043c\u0435\u0441\u0442\u043e VRAM, \u043e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e:<\/p>\n<p><strong>\u041c\u0438\u0444 \u043e \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439 \u043f\u0430\u043b\u043e\u0447\u043a\u0435:<\/strong> \u041c\u043d\u043e\u0433\u0438\u0435 \u0434\u0443\u043c\u0430\u044e\u0442, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 VRAM. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043d \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u0441\u0438\u0442 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u041e\u043d \u043d\u0435 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0433\u0440\u0430\u0444 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u043d\u0437\u043e\u0440\u044b.<\/p>\n<p><strong>\u041a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/strong> \u0423 \u043d\u0430\u0441 GPU \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043c\u043e\u043c \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 (4 \u0413\u0411). \u0412\u044b\u0437\u043e\u0432 <em>.empty_cache()<\/em> \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u044d\u043f\u043e\u0445\u0430\u043c\u0438. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0430\u043c \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0431\u0430\u0442\u0447\u0435\u0439.<\/p>\n<p>4. <strong>\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c (AMP) \u0438 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u044b:<\/strong> \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <em>torch.amp.autocast(&#8216;cuda&#8217;)<\/em> \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 <em>GradScaler(&#8216;cuda&#8217;)<\/em> &#8212; \u044d\u0442\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b Automatic Mixed Precision (AMP). <em>autocast<\/em> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0432 fp16, \u0430 <em>GradScaler <\/em>\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u044b \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438. \u0412\u043c\u0435\u0441\u0442\u0435 \u043e\u043d\u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0430 Tensor Cores \u0438 \u0441\u043d\u0438\u0436\u0430\u044e\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 &#8212; \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0445\u043e\u0434 \u0434\u043b\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445 Ampere.<\/p>\n<p><strong>\u041e\u0431\u0449\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f AI \u043c\u043e\u0434\u0435\u043b\u0438<\/strong><\/p>\n<p>\u0421\u0435\u0440\u0434\u0446\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043b\u0443\u0436\u0438\u0442 \u0444\u0430\u0439\u043b <a href=\"http:\/\/training.py\">training.py<\/a>. \u0417\u0434\u0435\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0432\u0441\u0435 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435.<\/p>\n<p><strong>\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u043b\u0435\u0436\u0430\u0442 <strong>Residual Blocks (\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438)<\/strong> &#8212; \u044d\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0435 \u0441\u0435\u0442\u0438 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0442\u0435\u0440\u044f\u0442\u044c \u043c\u0435\u043b\u043a\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0442\u0440\u043e\u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u044d\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e: \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u00ab\u0440\u0430\u0437\u043c\u044b\u0442\u044c\u00bb \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b, \u0446\u0430\u0440\u0430\u043f\u0438\u043d\u044b \u0438 \u0442\u043e\u043d\u043a\u0438\u0435 \u043b\u0438\u043d\u0438\u0438, \u0430 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0438\u0445 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c.<\/p>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 Residual Block<\/strong> &#8212; \u044d\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0437\u0430\u0442\u0443\u0445\u0430\u044e\u0449\u0438\u0445 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043e\u0432 \u0437\u0430 \u0441\u0447\u0451\u0442 skip-connections (\u00ab\u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u043f\u0443\u0442\u0435\u0439\u00bb). \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0439 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438, \u0441\u0435\u0442\u044c \u0443\u0447\u0438\u0442\u0441\u044f \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u00ab\u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0438\u00bb \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0443.<\/p>\n<p><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434:<\/strong><\/p>\n<p><strong>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0435\u0439.<\/strong> Skip-connection \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u0441\u0435\u0442\u0438. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0438 \u0438\u0441\u043a\u0430\u0437\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u00ab\u0432 \u0446\u0435\u043f\u0438\u00bb \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443.<\/p>\n<p><strong>\u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435.<\/strong> \u0413\u0440\u0430\u0434\u0438\u0435\u043d\u0442 (\u0441\u0438\u0433\u043d\u0430\u043b \u043e\u0448\u0438\u0431\u043a\u0438) \u0431\u0435\u0441\u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043a \u0440\u0430\u043d\u043d\u0438\u043c \u0441\u043b\u043e\u044f\u043c, \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0437\u0430\u0442\u0443\u0445\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u043b\u0443\u0447\u0448\u0435 \u043e\u0431\u043e\u0431\u0449\u0430\u0442\u044c.<\/p>\n<p><strong>\u0410\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u043a\u0438.<\/strong> \u041c\u043e\u0434\u0435\u043b\u044c \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u00ab\u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0430\u0445\u00bb (\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0448\u0443\u043c\u0430, \u0446\u0430\u0440\u0430\u043f\u0438\u043d, \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f \u0446\u0432\u0435\u0442\u0430), \u0430 \u043d\u0435 \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u043c \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u0441\u0435\u0439 \u0441\u0446\u0435\u043d\u044b &#8212; \u044d\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0440\u0438\u0441\u043a \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0444\u043e\u0442\u043e.<\/p>\n<p><strong>\u0427\u0442\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430<\/strong><\/p>\n<p>\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043f\u0440\u043e <u>\u043f\u043e<\/u>\u0434<u>\u0433\u043e\u0442\u043e\u0432\u043a\u0443 <\/u>\u0434<u>\u0430\u043d\u043d\u044b\u0445 \u0438 \u0441\u043e\u0437<\/u>\u0434<u>\u0430\u043d\u0438\u0435 \u0448<\/u>\u0443<u>\u043c\u043e\u0432<\/u> \u043c\u044b \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u043f\u0441\u043a\u0435\u0439\u043b\u0435\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 <a href=\"https:\/\/github.com\/AlexZ0494\/training\/tree\/master\/app\/models\/dataset\">app\/models\/dataset<\/a>.<\/p>\n<p>\u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u043c:<\/p>\n<p><strong>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435:<\/strong> <em>lr_dir<\/em> \/ <em>hr_dir<\/em> &#8212; <em>SRDataset<\/em>, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <em>cnt_im_start=12000<\/em>, \u0437\u0430\u0448\u0443\u043c\u043b\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e (<em>noise_augmenter<\/em> \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 <em>[&#8216;gaus&#8217;, &#8216;salt_paper&#8217;, &#8216;quantize&#8217;, &#8216;color_salt_paper&#8217;]<\/em>).<\/p>\n<p><strong>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f:<\/strong> <em>lv_dir<\/em> \/ <em>hv_dir<\/em> &#8212; <em>SRDataset<\/em>, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <em>cnt_im_start=200<\/em>, \u0437\u0430\u0448\u0443\u043c\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043c\u0435\u0440\u0435 \u0440\u043e\u0441\u0442\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 (<em>test_lr<\/em> \/ <em>test_hr<\/em>), \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043d\u0438 \u0432 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438, \u043d\u0438 \u0432 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438.<\/p>\n<p><strong>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f\u041e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b<\/strong><\/p>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u043c <em>TrainModel<\/em> (<a href=\"https:\/\/github.com\/AlexZ0494\/training\/blob\/master\/app\/residual_block\/training.py\">app\/<\/a><a href=\"http:\/\/training.py\">training.py<\/a><a href=\"https:\/\/github.com\/AlexZ0494\/training\/blob\/master\/app\/residual_block\/training.py\">)<\/a>. \u041a\u043b\u0430\u0441\u0441 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c, \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0442\u0435\u0440\u044c, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430: \u043d\u043e\u043c\u0435\u0440 \u044d\u043f\u043e\u0445\u0438, \u043b\u0443\u0447\u0448\u0438\u0439 PSNR, \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u043e\u0434\u0435\u043b\u0438, \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0448\u0443\u043c\u043e\u0432 \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<p>\u0426\u0438\u043a\u043b \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0442\u0430\u043a: \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u044d\u043f\u043e\u0445\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e (<em>Ctrl+C<\/em>), \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0431\u043b\u043e\u043a <em>except<\/em><\/p>\n<p><em>KeyboardInterrupt<\/em> &#8212; \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e.<\/p>\n<p><strong>Mixed Precision: \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 GPU<\/strong><\/p>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0434\u0451\u0442 \u0432 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (mixed precision) \u0447\u0435\u0440\u0435\u0437 <em>torch.amp<\/em> &#8212; \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u0445 NVIDIA \u0438 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438. AMP \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432: <em>autocast<\/em> (\u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u0432 fp16) \u0438 <em>GradScaler <\/em>(\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0430). <em>GradScaler<\/em> \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435:<\/p>\n<p><strong>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>model.eval()<\/em> &#8212; \u0431\u0435\u0437 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0441\u043e\u0432 \u0438 \u0431\u0435\u0437 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043e\u0432 (<a href=\"http:\/\/torch.no\"><em>torch.no<\/em><\/a><em>_grad()<\/em>). \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 <em>lv_dir<\/em> \/ <em>hv_dir<\/em> \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u043c\u0438 (\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d ([-1, 1])), \u043d\u043e \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c\u044e <em>batch_size=2<\/em> \u0438 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438:<\/p>\n<p><strong> PSNR (Peak Signal-to-Noise Ratio)<\/strong> &#8212; \u043f\u0438\u043a\u043e\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043a \u0448\u0443\u043c\u0443. \u0418\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u0434\u0435\u0446\u0438\u0431\u0435\u043b\u0430\u0445 (\u0434\u0411) \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u044d\u0442\u0430\u043b\u043e\u043d\u0443.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<strong>\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>&lt; 10 \u0434\u0411<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u041e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0443\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u043e.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>~14\u201318 \u0434\u0411<\/strong> <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u041d\u0438\u0437\u043a\u043e\u0435 \u0438\u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u0412\u0438\u0434\u043d\u044b \u044f\u0432\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b. \u0414\u043b\u044f \u0437\u0430\u0434\u0430\u0447 \u0440\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u0444\u043e\u0442\u043e \u0441 \u0441\u0438\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0435\u0444\u0435\u043a\u0442\u0430\u043c\u0438 \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0435\u0432\u044b\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u00ab\u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u043a\u0435\u00bb \u043b\u0438\u0446\u0430 \u043c\u043e\u0434\u0435\u043b\u044c\u044e.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>20\u201330 \u0434\u0411<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u0425\u043e\u0440\u043e\u0448\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0431\u043b\u0438\u0437\u043a\u043e\u0435 \u043a \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0443. \u042d\u0442\u043e \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0441\u0443\u043f\u0435\u0440\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u00a0<strong>&gt; 30 \u0434\u0411<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0\u041e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0441 \u044d\u0442\u0430\u043b\u043e\u043d\u043e\u043c \u043f\u043e \u044f\u0440\u043a\u043e\u0441\u0442\u0438 \u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0443. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0442\u0430\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044e \u0444\u0430\u043a\u0442\u0443\u0440\u044b \u043a\u043e\u0436\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0446\u0432\u0435\u0442\u0430.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong> SSIM (Structural Similarity Index Measure)<\/strong> &#8212; \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u0430. \u041c\u0435\u0442\u0440\u0438\u043a\u0430, \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u0445\u043e\u0436\u0435\u0441\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043d\u0435 \u043f\u043e \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u0438, \u0430 \u043f\u043e \u0442\u0440\u0451\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c: \u044f\u0440\u043a\u043e\u0441\u0442\u0438, \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0443 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442<\/p>\n<p>(-1) \u0434\u043e (1), \u0433\u0434\u0435 (1) \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 PSNR, SSIM \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u043c\u0438 &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u0440\u0430\u0437\u043c\u044b\u0442\u0438\u0435, \u0441\u0434\u0432\u0438\u0433\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 SSIM \u043b\u0443\u0447\u0448\u0435 \u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.<\/p>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 SSIM \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0447\u0435\u0440\u0435\u0437 <em>scikit-image<\/em>:<\/p>\n<p><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438<\/strong><\/p>\n<p>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u0438\u043c, \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u044d\u043f\u043e\u0445\u0443 \u0437\u0430\u0442\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e 60 \u0447\u0430\u0441\u043e\u0432. \u041c\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0443 \u043f\u043e\u043c\u043e\u0449\u043d\u0435\u0435 \u0438 \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <em>batch_size<\/em>, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043d\u0435 \u0441\u043d\u0438\u0436\u0430\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041d\u0430 \u0441\u0432\u043e\u0451\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 12 000 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c\u044e <em>batch_size<\/em> 6.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/9d\/26\/8c\/9d268c8cd7e964e276d093112a51aef3.png\" width=\"1804\" height=\"793\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/9d\/26\/8c\/9d268c8cd7e964e276d093112a51aef3.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/9d\/26\/8c\/9d268c8cd7e964e276d093112a51aef3.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/b2\/0c\/18\/b20c188c373d3c38718e388292c4b896.png\" width=\"653\" height=\"198\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/b2\/0c\/18\/b20c188c373d3c38718e388292c4b896.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/b2\/0c\/18\/b20c188c373d3c38718e388292c4b896.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/34\/27\/c1\/3427c19aa8957adbd5f2ea3b323ed8ef.png\" width=\"1295\" height=\"425\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/34\/27\/c1\/3427c19aa8957adbd5f2ea3b323ed8ef.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/34\/27\/c1\/3427c19aa8957adbd5f2ea3b323ed8ef.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/7c\/af\/10\/7caf109c068059c5aa3e03baf6d1c217.jpg\" alt=\"\u042d\u0442\u0430\u043b\u043e\u043d\" title=\"\u042d\u0442\u0430\u043b\u043e\u043d\" width=\"1280\" height=\"720\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/7c\/af\/10\/7caf109c068059c5aa3e03baf6d1c217.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/7c\/af\/10\/7caf109c068059c5aa3e03baf6d1c217.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u042d\u0442\u0430\u043b\u043e\u043d<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/27\/33\/ec\/2733ec32a2571b7d565a6c7c99b49dfe.jpg\" alt=\"\u042d\u043f\u043e\u0445\u0430 1. PSNR: 14.3417 \u0434\u0411\" title=\"\u042d\u043f\u043e\u0445\u0430 1. PSNR: 14.3417 \u0434\u0411\" width=\"5120\" height=\"2880\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/27\/33\/ec\/2733ec32a2571b7d565a6c7c99b49dfe.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/27\/33\/ec\/2733ec32a2571b7d565a6c7c99b49dfe.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u042d\u043f\u043e\u0445\u0430 1. PSNR: 14.3417 \u0434\u0411<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/de\/cc\/19\/decc192864fb0347bd3172e006334069.jpg\" alt=\"\u042d\u043f\u043e\u0445\u0430 2. PSNR: 14.9004 \u0434\u0411 \" title=\"\u042d\u043f\u043e\u0445\u0430 2. PSNR: 14.9004 \u0434\u0411 \" width=\"5120\" height=\"2880\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/de\/cc\/19\/decc192864fb0347bd3172e006334069.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/de\/cc\/19\/decc192864fb0347bd3172e006334069.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u042d\u043f\u043e\u0445\u0430 2. PSNR: 14.9004 \u0434\u0411 <\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/c2\/20\/5a\/c2205a7a88b771e9baf7615897310dad.jpg\" alt=\"\u042d\u043f\u043e\u0445\u0430 3. PSNR: 16.2098 \u0434\u0411\" title=\"\u042d\u043f\u043e\u0445\u0430 3. PSNR: 16.2098 \u0434\u0411\" width=\"5120\" height=\"2880\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/c2\/20\/5a\/c2205a7a88b771e9baf7615897310dad.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/c2\/20\/5a\/c2205a7a88b771e9baf7615897310dad.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u042d\u043f\u043e\u0445\u0430 3. PSNR: 16.2098 \u0434\u0411<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/e5\/b2\/c8\/e5b2c844edf8635436845505a1d6e875.jpg\" alt=\"\u042d\u043f\u043e\u0445\u0430 4. PSNR: 16.6049 \u0434\u0411 \" title=\"\u042d\u043f\u043e\u0445\u0430 4. PSNR: 16.6049 \u0434\u0411 \" width=\"5120\" height=\"2880\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/e5\/b2\/c8\/e5b2c844edf8635436845505a1d6e875.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/e5\/b2\/c8\/e5b2c844edf8635436845505a1d6e875.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u042d\u043f\u043e\u0445\u0430 4. PSNR: 16.6049 \u0434\u0411 <\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0412\u044b\u0432\u043e\u0434\u044b \u0438 \u0438\u0442\u043e\u0433<\/strong><\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: \u043e\u0442 \u0432\u044b\u0431\u043e\u0440\u0430 \u0436\u0435\u043b\u0435\u0437\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 CUDA-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Windows \u0434\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0441 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0448\u0443\u043c\u043e\u043c, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 Residual Blocks \u0438 \u0431\u043e\u0440\u044c\u0431\u044b \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 4 \u0413\u0411 VRAM.<\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/p>\n<p><strong>\u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435:<\/strong> \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0439 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043d\u0430 \u0431\u0430\u0437\u0435 <em>uv<\/em> \u0441 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 PyTorch (CUDA 13.0) \u0438 NumPy (&lt;2.0), \u0447\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p><strong>\u0414\u0430\u0442\u0430\u0441\u0435\u0442:<\/strong> \u0441\u043e\u0437\u0434\u0430\u043d \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 <em>SRDataset<\/em> \u0441 \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u0442\u0438\u043f\u0430\u043c\u0438 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0448\u0443\u043c\u0430, \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0444\u0435\u043a\u0442\u044b \u043f\u043b\u0451\u043d\u043a\u0438 \u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0441\u0435\u043d\u0441\u043e\u0440\u043e\u0432. \u0414\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u043d\u0430 train (12 000), valid (200) \u0438 test-\u043d\u0430\u0431\u043e\u0440\u044b.<\/p>\n<p><strong> \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435:<\/strong> \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0430 \u0432 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (AMP) \u0441 <em>batch_size=6<\/em> \u043d\u0430 RTX 3050 Ti Laptop GPU. \u041e\u0434\u043d\u0430 \u044d\u043f\u043e\u0445\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 ~60 \u0447\u0430\u0441\u043e\u0432; \u0437\u0430 4 \u044d\u043f\u043e\u0445\u0438 PSNR \u0432\u044b\u0440\u043e\u0441 \u0441 14.3 \u0434\u043e 16.6 \u0434\u0411.<\/p>\n<p><strong> \u0418\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f:<\/strong> \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 cuDNN benchmark, \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0437\u043c, \u0440\u0443\u0447\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0442\u0435\u043d\u0437\u043e\u0440\u043e\u0432 \u0441 <em>gc.collect()<\/em> \u0438 <em>torch.cuda.empty_cache()<\/em>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b Memory Junction \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0438 \u0443\u0442\u0435\u0447\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 PSNR \u2248 14 \u0434\u0411 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0438\u0437\u043a\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u0432 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435, \u043d\u043e \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u043c \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u0441\u0438\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0435\u0444\u0435\u043a\u0442\u0430\u043c\u0438, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u0435\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c, \u0447\u0435\u043c \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f. \u041d\u0430 \u0441\u043b\u0430\u0431\u043e\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0435 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430 (RTX 3050 Ti Laptop GPU) \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439.<\/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\/articles\/1094958\/\">https:\/\/habr.com\/ru\/articles\/1094958\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0417\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0441\u0432\u043e\u0439 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u043e\u0440?\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u044d\u043f\u043e\u0445\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u043e\u0442\u043e \u0438 \u0432\u0438\u0434\u0435\u043e \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043f\u043b\u0430\u0442\u043d\u044b\u043c\u0438 SaaS-\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u043b\u0438\u0431\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438. \u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0447\u044c \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u043e\u0431 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 &#8212; \u0431\u0443\u0434\u044c \u0442\u043e \u043e\u0446\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0441\u0435\u043c\u0435\u0439\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0441\u0441\u0435\u0442 \u0438\u043b\u0438 \u0430\u0440\u0445\u0438\u0432\u0430 \u0438\u043d\u0441\u0442\u0438\u0442\u0443\u0442\u0441\u043a\u0438\u0445 \u043f\u043b\u0435\u043d\u043e\u043a &#8212; \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u043e\u0432\u0435\u0440\u0438\u044f \u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438.\u041c\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0446\u0435\u043b\u044c: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u0438\u0445 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c. \u0413\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0443\u044e \u0440\u0435\u0437\u043a\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0435\u0444\u0435\u043a\u0442\u044b \u043f\u043b\u0435\u043d\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0446\u0430\u0440\u0430\u043f\u0438\u043d\u044b \u0438\u043b\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0441\u0434\u0432\u0438\u0433). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u0435\u0441\u0430\u043c \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u0447\u0435\u0433\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0435 API \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435 \u043c\u043e\u0433\u0443\u0442.\u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443 supervised image-to-image translation (\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435) \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0442\u0440\u043e\u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.\u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:\u0412\u0445\u043e\u0434: \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f XLR \u2208RH\u00d7W\u00d73 \u0441 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0448\u0443\u043c\u043e\u043c (\u0433\u0430\u0443\u0441\u0441\u043e\u0432 \u0448\u0443\u043c, \u00ab\u0441\u043e\u043b\u044c \u0438 \u043f\u0435\u0440\u0435\u0446\u00bb, \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u0438 \u0434\u0440.), \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u0434\u0435\u0444\u0435\u043a\u0442\u044b \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u043b\u0451\u043d\u043a\u0438 \u0438\u043b\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u043d\u0441\u043e\u0440\u0430.\u0412\u044b\u0445\u043e\u0434: \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f YHR \u2208R2H\u00d72W\u00d73, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e\u0435 \u043a \u044d\u0442\u0430\u043b\u043e\u043d\u0443.\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c: \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f &#8212; L1 (MAE) \u0434\u043b\u044f \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 + perceptual loss (\u043d\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u0445 \u043f\u0440\u0435\u0434\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 VGG) \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430.\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430: PSNR (\u043f\u0438\u043a\u043e\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043a \u0448\u0443\u043c\u0443) \u0438 SSIM (\u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u0430) \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435.\u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043f\u0443\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0443\u043b\u0443\u0447\u0448\u0430\u0442\u043e\u0440\u0430. \u042d\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 GAN-\u0441\u0435\u0442\u0435\u0439 \u0438 \u0434\u0438\u0444\u0444\u0443\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f. \u041c\u044b \u043f\u0440\u043e\u0439\u0434\u0435\u043c \u043f\u043e \u0432\u0441\u0435\u043c \u0433\u0440\u0430\u0431\u043b\u044f\u043c: \u043e\u0442 \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0443\u044e\u0449\u0438\u0445 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0434\u043e \u0441\u0445\u0432\u0430\u0442\u043e\u043a \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 CUDA out of memory \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0442\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 4K-\u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0435.\u0416\u0435\u043b\u0435\u0437\u043e\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u0443 \u043d\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043d\u043e\u0443\u0442\u0431\u0443\u043a MSI Katana GF66 11UD, \u0435\u0433\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.\u00a0\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f ML-\u0437\u0430\u0434\u0430\u0447\u00a0\u0412\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u00a0NVIDIA GeForce \u00a0RTX 3050 Ti \u00a0Laptop GPU (4 \u00a0\u0413\u0411 GDDR6)\u00a0\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0444\u0430\u043a\u0442\u043e\u0440. \u041f\u0430\u043c\u044f\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0430\u043b\u043e \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435. \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0449\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u0445.\u00a0\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0447\u0438\u043f\u00a0GA106 \/ Ampere\u00a0\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 Tensor Cores \u0434\u043b\u044f FP16\/BF16, \u0447\u0442\u043e \u0441\u043f\u0430\u0441\u0430\u0435\u0442 \u043e\u0442 OOM \u0446\u0435\u043d\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0442\u0435\u0440\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438.\u00a0\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u0430\u044f \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c GPU \u00a0(TGP)\u00a060 \u0412\u0442 (Base), \u0434\u043e \u00a075 \u0412\u0442 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u00a0Dynamic Boost 2.0\u00a0\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u043f\u043b\u043e\u0432\u043e\u0439 \u043f\u0430\u043a\u0435\u0442. \u0412 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u043f\u043e\u0434 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u043a\u0430\u0440\u0442\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u043f\u0440\u0435\u0442\u0441\u044f \u0432 \u043b\u0438\u043c\u0438\u0442 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0431\u0440\u043e\u0441\u0438\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u044b.\u00a0\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u00a0Intel Core i7-\u00a011800H (8 \u044f\u0434\u0435\u0440 \/ \u00a016 \u043f\u043e\u0442\u043e\u043a\u043e\u0432)\u00a0\u041e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 CPU \u0434\u043b\u044f \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e FFmpeg \u0438 \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433\u0430 \u043a\u0430\u0434\u0440\u043e\u0432. \u041d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c.\u00a0\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u00a032 \u0413\u0411 DDR43200 (\u0437\u0430\u043d\u044f\u0442\u044b \u043e\u0431\u0430 \u0441\u043b\u043e\u0442\u0430)\u00a0\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0442\u0447\u0438 \u043a\u0430\u0434\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0434\u0430\u0447\u0435\u0439 \u043d\u0430 GPU.\u041d\u043e \u0436\u0435\u043b\u0435\u0437\u043e &#8212; \u0436\u0435\u043b\u0435\u0437\u043e\u043c, \u0430 \u0434\u044c\u044f\u0432\u043e\u043b \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445, \u0438 \u044d\u0442\u043e \u0441\u043e\u0444\u0442. \u0421 \u043d\u0438\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u043e\u0444\u0442, \u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043d\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 Windows \u0438 \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0432\u0435\u0437\u043b\u043e, \u0447\u0442\u043e \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430 &#8212; \u043e\u0442 NVIDIA.\u0414\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442 AMD \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 CUDA \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c ROCM, \u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0444\u0442\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441\u0445\u043e\u0436\u0430.\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u041d\u0430 Windows \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u043d\u0438\u0447\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c Python, \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Microsoft.1. \u0414\u0440\u0430\u0439\u0432\u0435\u0440 NVIDIA\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u0432\u0435\u0436\u0438\u0439 Game Ready \u0438\u043b\u0438 Studio \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 NVIDIA. \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c: \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u0430\u0451\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a GPU \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 CUDA Runtime. \u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c CUDA Toolkit \u0434\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 CUDA, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 PyTorch.\u0412\u0430\u0436\u043d\u043e: \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 CUDA 13.0 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a CUDA Toolkit \u043d\u0430 Windows. \u0415\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 NVIDIA \u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Toolkit.2. \u0412\u044b\u0431\u043e\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 CUDA Toolkit\u0413\u0434\u0435 \u0431\u0440\u0430\u0442\u044c\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0439\u0442\u0435 CUDA Toolkit \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 NVIDIA. \u0412\u0430\u0436\u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u0430: \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438\u043b\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u043b\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u043e\u043c\u0430\u044e\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 cuDNN \u0438 PyTorch.\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e CUDA\u0414\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u043d\u0430 Windows \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u00ab\u0441\u0430\u043c\u0443\u044e \u043d\u043e\u0432\u0443\u044e\u00bb, \u0430 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044e, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 PyTorch. \u0427\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b:1. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 GPU. \u0423\u0437\u043d\u0430\u0439\u0442\u0435 Compute Capability \u0432\u0430\u0448\u0435\u0439 \u043a\u0430\u0440\u0442\u044b \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 NVIDIA. RTX 3050 Ti (Ampere) \u0438\u043c\u0435\u0435\u0442 Compute Capability 8.6.2. \u0421\u0432\u0435\u0440\u044c\u0442\u0435\u0441\u044c \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 PyTorch. \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 PyTorch \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0448\u0443 \u041e\u0421, \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0438 \u0432\u0435\u0440\u0441\u0438\u044e CUDA &#8212; \u0441\u0430\u0439\u0442 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b.3. \u0412\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e CUDA, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 wheel\u043f\u0430\u043a\u0435\u0442\u044b PyTorch. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e CUDA 13.0.\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u0435 CUDA 12.x \u0438\u043b\u0438 11.x, \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043b\u0438\u0431\u043e:\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c PyTorch \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 (\u0447\u0442\u043e \u043d\u0430 Windows &#8212; \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u043e\u043b\u044c \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c),\u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 PyTorch, \u0433\u0434\u0435 \u043d\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439.\u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e CUDA 13.0:\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 PyTorch. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 download.pytorch.org \u0435\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 CUDA-\u0431\u0438\u043b\u0434\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u044d\u0442\u0443 \u0432\u0435\u0440\u0441\u0438\u044e. \u042d\u0442\u043e \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c PyTorch \u0432\u0440\u0443\u0447\u043d\u0443\u044e.\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 RTX 3050 Ti. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 Ampere (RTX 30xx) \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 CUDA 13, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 (Tensor Cores).\u0411\u0430\u043b\u0430\u043d\u0441 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. CUDA 13 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438.\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 cuDNN. \u0412\u0435\u0440\u0441\u0438\u0438 cuDNN, \u0438\u0434\u0443\u0449\u0438\u0435 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 CUDA 13 \u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 PyTorch \u0438 TorchVision.\u041d\u044e\u0430\u043d\u0441: \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b CUDA. \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 PyTorch \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 CUDA-\u044f\u0434\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u0441\u043d\u044f\u0442\u044c \u0433\u0430\u043b\u043e\u0447\u043a\u0438 \u0441 \u00abCUDA Samples\u00bb, \u00abCUDA Documentation\u00bb \u0438 \u00abVisual Studio Integration\u00bb \u2014 \u044d\u0442\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0435\u0441\u0442\u043e \u0438 \u0443\u0441\u043a\u043e\u0440\u0438\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443.\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 CUDA Toolkit \u043d\u0430 Windows1. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043c \u00abCustom\u00bb (\u043d\u0435 \u00abExpress\u00bb), \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f.2. \u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u043c\u0438:CUDA Runtime (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e);Developer Tools (\u0435\u0441\u043b\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c CUDA-\u044f\u0434\u0440\u0430); cuDNN (\u0435\u0441\u043b\u0438 \u043e\u043d \u0438\u0434\u0451\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430 &#8212; \u0438\u043d\u0430\u0447\u0435 \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e).\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 CUDA 13.0 \u043f\u0443\u043d\u043a\u0442 \u00abDriver Components\u00bb \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 &#8212; \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e (\u0441\u043c. \u0448\u0430\u0433 1).3. \u041f\u0443\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0). \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0438 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.4. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b:\u0415\u0441\u043b\u0438 nvcc \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f PATH:C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\binC:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\libnvvp (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430).\u0412\u0430\u0436\u043d\u043e:\u041d\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439 CUDA \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0431\u0435\u0437 \u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u043f\u0443\u0442\u0435\u0439 &#8212; \u043e\u0434\u043d\u0430 \u0438\u0437 \u0447\u0430\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u043e\u0448\u0438\u0431\u043e\u043a \u00abCUDA not found\u00bb \u0438\u043b\u0438 \u00abMismatch between runtime and driver\u00bb.\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0439\u0442\u0435 CUDA Toolkit \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 NVIDIA. \u0412\u0430\u0436\u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u0430: \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438\u043b\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u043b\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u043e\u043c\u0430\u044e\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 cuDNN \u0438 PyTorch.\u041d\u0435 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0439\u0442\u0435 CUDA Toolkit, cuDNN \u0438 \u0432\u0435\u0440\u0441\u0438\u0438 PyTorch \u00ab\u043d\u0430 \u0433\u043b\u0430\u0437\u00bb. \u0412\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u0435\u0440\u044f\u0439\u0442\u0435\u0441\u044c \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 PyTorch. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c CUDA 13.0, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0441\u043a\u0430\u0447\u0430\u043d\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435 wheel-\u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432\u043c\u0435\u0441\u0442\u0435.3. Microsoft Visual C++ Redistributable\u0421\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0438\u0434\u0430 ImportError: DLL load failed &#8212; \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a VC++.\u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e x64 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 Microsoft. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e OpenCV, Torch \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f: \u0438\u043c \u043d\u0443\u0436\u043d\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 DLL \u043e\u0442 Microsoft CRT.\u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 uv\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 pip install -r requirements.txt \u043d\u0430 Windows \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u044b\u0442\u043a\u0443 \u0438\u0437-\u0437\u0430 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 wheel-\u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0447\u0430\u0441\u0442\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c uv &#8212; \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 Rust: \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0430\u0437\u044b \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0437\u043c \u0432\u0435\u0440\u0441\u0438\u0439.\u041d\u0430\u0448 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (pyproject.toml) \u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u0432\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430:1. \u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 NumPy (&lt;2.0). \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432\u0440\u043e\u0434\u0435 scikit-image \u0438 \u0441\u0442\u0430\u0440\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 opencvpython \u0435\u0449\u0451 \u043d\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0434 \u043b\u043e\u043c\u0430\u044e\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f NumPy 2.0. \u0412 pyproject.toml \u044d\u0442\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c numpy&lt;2.0.2. \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 PyTorch. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 PyPI \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 CPU-only \u0431\u0438\u043b\u0434\u044b. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 RTX 3050 Ti, \u043c\u044b \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 PyTorch \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 CUDA 13.0:\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 uv \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0415\u0441\u043b\u0438 uv \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d:\u0417\u0430\u0442\u0435\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442:\u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430:\u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443 .venv;\u0441\u043a\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 PyTorch \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u0432\u0430\u0448\u0443 \u041e\u0421 \u0438 CUDA 13.0; \u0443\u0441\u043a\u043e\u0440\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u043c\u0443 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432; \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u043c.\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430: \u043f\u0430\u0440\u044b LR\/HR \u0438 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0448\u0443\u043c\u0430\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 train \/ valid \/ test\u0414\u0430\u0442\u0430\u0441\u0435\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0435 SRDataset (app\/models\/dataset.py) &#8212; \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 torch.utils.data.Dataset. \u041d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430:lr_dir &#8212; \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f (low-res, LR); hr_dir &#8212; \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f (high-res, HR).\u041a\u043b\u0430\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043e\u0431\u043e\u0438\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0438\u0445 \u0438 \u043e\u0442\u0434\u0430\u0451\u0442 \u043f\u0430\u0440\u044b (lr_image, hr_image) \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 cnt_im_start \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (\u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0435 cnt_im_start \u0444\u0430\u0439\u043b\u043e\u0432), \u0430 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 cnt_im_end \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 cnt_im_end&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-498840","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/498840","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=498840"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/498840\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=498840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=498840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=498840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}