{"id":6036,"date":"2026-09-23T09:00:00","date_gmt":"2026-09-23T09:00:00","guid":{"rendered":"https:\/\/otus.ru\/journal\/?p=6036"},"modified":"2026-09-25T15:34:14","modified_gmt":"2026-09-25T15:34:14","slug":"keras-opisanie-i-osobennosti","status":"publish","type":"post","link":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/","title":{"rendered":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c"},"content":{"rendered":"<p><strong>Keras<\/strong> &#8212; \u044d\u0442\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Python \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439: \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0441\u043b\u043e\u0435\u0432, \u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a (\u0431\u044d\u043a\u0435\u043d\u0434). \u0412 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0435\u0439\u043a\u0435 <strong>Keras 3<\/strong> \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c JAX, TensorFlow \u0438\u043b\u0438 PyTorch &#8212; \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u0434 \u043c\u043e\u0434\u0435\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0438\u0437 \u043d\u0438\u0445. \u041d\u0438\u0436\u0435 &#8212; \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d Keras, \u0447\u0435\u043c Sequential \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 Functional API \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<div class=\"oj-toc\" style=\"background:#f6f6f6;border-radius:8px;padding:14px 20px;margin:20px 0\">\n<p><strong>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/strong><\/p>\n<ol>\n<li><a href=\"#s1\">Keras, \u0431\u044d\u043a\u0435\u043d\u0434 \u0438 tf.keras: \u0442\u0440\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0443\u0442\u0430\u044e\u0442<\/a><\/li>\n<li><a href=\"#s2\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/a><\/li>\n<li><a href=\"#s3\">\u041f\u0435\u0440\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 Sequential: \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/a><\/li>\n<li><a href=\"#s4\">Functional API: \u043a\u043e\u0433\u0434\u0430 Sequential \u043c\u0430\u043b\u043e<\/a><\/li>\n<li><a href=\"#s5\">\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/a><\/li>\n<li><a href=\"#s6\">\u041a\u043e\u0434 \u0438\u0437 \u0441\u0442\u0430\u0440\u044b\u0445 \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u043e\u0432: \u0447\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u0432 Keras 3<\/a><\/li>\n<li><a href=\"#s7\">\u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c<\/a><\/li>\n<li><a href=\"#s8\">\u0412\u044b\u0432\u043e\u0434\u044b<\/a><\/li>\n<li><a href=\"#s9\">\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \/ \u0441\u0432\u044f\u0437\u044c \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439<\/a><\/li>\n<li><a href=\"#s10\">FAQ<\/a><\/li>\n<\/ol>\n<\/div>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b 23 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f 2026 \u0433\u043e\u0434\u0430: Keras 3.15.1, Python 3.12, \u0431\u044d\u043a\u0435\u043d\u0434\u044b JAX 0.11 \u0438 PyTorch 2.14 (\u043e\u0431\u0430 \u043d\u0430 CPU), \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 &#8212; \u0435\u0449\u0435 \u0438 \u043d\u0430 TensorFlow 2.21.<\/p>\n<h2 id=\"s1\">Keras, \u0431\u044d\u043a\u0435\u043d\u0434 \u0438 tf.keras: \u0442\u0440\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0443\u0442\u0430\u044e\u0442<\/h2>\n<ul>\n<li><strong>Keras<\/strong> &#8212; \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441: \u0441\u043b\u043e\u0438, \u043c\u043e\u0434\u0435\u043b\u0438, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u044b, \u0446\u0438\u043a\u043b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">fit()<\/code>. \u0421\u0430\u043c Keras \u0442\u0435\u043d\u0437\u043e\u0440\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0435\u0442.<\/li>\n<li><strong>\u0411\u044d\u043a\u0435\u043d\u0434<\/strong> &#8212; \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u044b: JAX, TensorFlow \u0438\u043b\u0438 PyTorch (\u0432 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 OpenVINO, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430, \u0431\u0435\u0437 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f). \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">KERAS_BACKEND<\/code> \u0434\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0430 Keras.<\/li>\n<li><strong>tf.keras<\/strong> &#8212; Keras, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 TensorFlow. \u0412 TensorFlow 2.16 \u0438 \u043d\u043e\u0432\u0435\u0435 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">tf.keras<\/code> \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 Keras 3; \u0441\u0442\u0430\u0440\u044b\u0435 \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0438 \u0441 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">from tensorflow import keras<\/code> \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u043d\u043e \u0447\u0430\u0441\u0442\u044c API \u0438\u0437 Keras 2 \u0443\u0434\u0430\u043b\u0435\u043d\u0430 (\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0438\u0436\u0435). \u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f, TensorFlow \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Keras 2 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">tf_keras<\/code> \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">TF_USE_LEGACY_KERAS=1<\/code>.<\/li>\n<\/ul>\n<p>\u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0438: Keras \u0441\u043e\u0437\u0434\u0430\u043b \u0424\u0440\u0430\u043d\u0441\u0443\u0430 \u0428\u043e\u043b\u043b\u0435, \u043f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0432\u044b\u0448\u043b\u0430 \u0432 \u043c\u0430\u0440\u0442\u0435 2015 \u0433\u043e\u0434\u0430 \u043a\u0430\u043a \u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442; \u0432\u0441\u043a\u043e\u0440\u0435 \u0430\u0432\u0442\u043e\u0440 \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 Google \u0438 \u043f\u043e\u0447\u0442\u0438 \u0434\u0435\u0441\u044f\u0442\u044c \u043b\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b Keras \u0442\u0430\u043c (\u0432 \u043a\u043e\u043d\u0446\u0435 2024 \u0433\u043e\u0434\u0430 \u043e\u043d \u0443\u0448\u0435\u043b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043f\u0440\u043e\u0435\u043a\u0442 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c). \u0420\u0430\u043d\u043d\u0438\u0439 Keras \u0443\u043c\u0435\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 Theano, TensorFlow \u0438 CNTK, \u0437\u0430\u0442\u0435\u043c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0441\u0442\u0430\u043b \u0447\u0430\u0441\u0442\u044c\u044e TensorFlow, \u0430 \u0432 Keras 3 (\u043a\u043e\u043d\u0435\u0446 2023 \u0433\u043e\u0434\u0430) \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0440\u0430\u0437\u0430 \u0438\u0437 \u0441\u0442\u0430\u0440\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u00abKeras \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e TensorFlow\u00bb \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u0430.<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0411\u044d\u043a\u0435\u043d\u0434<\/th>\n<th>\u041a\u043e\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442<\/th>\n<th>\u0427\u0442\u043e \u0443\u0447\u0435\u0441\u0442\u044c<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>JAX<\/td>\n<td>\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0435\u0439 XLA<\/td>\n<td>GPU-\u0441\u0431\u043e\u0440\u043a\u0443 JAX \u0441\u0442\u0430\u0432\u044f\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 CPU-\u0432\u0435\u0440\u0441\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td>TensorFlow<\/td>\n<td>\u043d\u0443\u0436\u0435\u043d \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0434\u0435\u043f\u043b\u043e\u0439: TF Serving, LiteRT (\u0431\u044b\u0432\u0448\u0438\u0439 TensorFlow Lite)<\/td>\n<td>\u0442\u044f\u0436\u0435\u043b\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0439 Python \u043e\u0442\u0441\u0442\u0430\u0435\u0442<\/td>\n<\/tr>\n<tr>\n<td>PyTorch<\/td>\n<td>\u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0436\u0435 \u043f\u0438\u0448\u0435\u0442 \u043d\u0430 PyTorch, \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c \u0441 \u0435\u0433\u043e \u043a\u043e\u0434\u043e\u043c<\/td>\n<td>\u043c\u043e\u0434\u0435\u043b\u044c Keras &#8212; \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">torch.nn.Module<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0413\u0440\u0430\u043d\u0438\u0446\u0430: \u00ab\u043e\u0434\u0438\u043d \u043a\u043e\u0434 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0431\u044d\u043a\u0435\u043d\u0434\u0435\u00bb \u0432\u0435\u0440\u043d\u043e \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0441\u043b\u043e\u0435\u0432 Keras. \u0415\u0441\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">tf.image<\/code> \u0438\u043b\u0438 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">torch.fft<\/code>), \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0435\u0442 &#8212; \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0435\u0441\u0442\u044c <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras.ops<\/code>.<\/p>\n<h2 id=\"s2\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/h2>\n<p>Keras \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0431\u044d\u043a\u0435\u043d\u0434 &#8212; \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. \u041d\u0443\u0436\u0435\u043d \u0441\u0432\u0435\u0436\u0438\u0439 Python: Keras 3.15 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 Python 3.11+, JAX 0.11 &#8212; 3.12+ (\u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0435 pip \u043c\u043e\u043b\u0447\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0441\u0442\u0430\u0440\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438). \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0430 CPU:<\/p>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\">python3<span style=\"color: #ABB2BF\"> <\/span>-m<span style=\"color: #ABB2BF\"> <\/span>venv<span style=\"color: #ABB2BF\"> <\/span>.venv\n<span style=\"color: #E5C07B\">source<\/span><span style=\"color: #ABB2BF\"> <\/span>.venv\/bin\/activate\npip<span style=\"color: #ABB2BF\"> <\/span>install<span style=\"color: #ABB2BF\"> <\/span>keras<span style=\"color: #ABB2BF\"> <\/span>jax\n<span style=\"color: #E5C07B\">export<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">KERAS_BACKEND<\/span><span style=\"color: #56B6C2\">=<\/span>jax<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044d\u043a\u0435\u043d\u0434 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d, Keras 3 \u0431\u0435\u0440\u0435\u0442 \u0435\u0433\u043e \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">~\/.keras\/keras.json<\/code>, \u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">tensorflow<\/code>. \u0422\u0438\u043f\u043e\u0432\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u0430 &#8212; \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras<\/code> \u0438 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">jax<\/code>, \u043d\u043e \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e:<\/p>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\">python3<span style=\"color: #ABB2BF\"> <\/span>-c<span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #98C379\">\"import keras\"<\/span><\/code><\/pre>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\">ModuleNotFoundError: No module named &#x27;tensorflow&#x27;\n<\/code><\/pre>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 &#8212; \u0437\u0430\u0434\u0430\u0442\u044c <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">KERAS_BACKEND=jax<\/code> (\u0438\u043b\u0438 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">torch<\/code>) \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043b\u0438\u0431\u043e \u0432 \u043a\u043e\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">os.environ[\"KERAS_BACKEND\"] = \"jax\"<\/code> \u0434\u043e <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">import keras<\/code>. \u041f\u043e\u0441\u043b\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0431\u044d\u043a\u0435\u043d\u0434 \u043c\u0435\u043d\u044f\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras.config.set_backend(\"torch\")<\/code> \u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u043c Keras, \u043d\u043e \u0432\u0441\u0435 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0441\u043b\u043e\u0438 \u0438 \u0442\u0435\u043d\u0437\u043e\u0440\u044b \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b; \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043f\u0440\u043e\u0449\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441.<\/p>\n<h2 id=\"s3\">\u041f\u0435\u0440\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 Sequential: \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 &#8212; \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0440\u0443\u0433\u0430 \u0440\u0430\u0434\u0438\u0443\u0441\u0430 1 \u043e\u0442 \u0442\u043e\u0447\u0435\u043a \u0441\u043d\u0430\u0440\u0443\u0436\u0438. \u0414\u0430\u043d\u043d\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u0434\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432.<\/p>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\"><span style=\"color: #C678DD\">import<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">os<\/span>\n<span style=\"color: #E06C75\">os<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">environ<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">setdefault<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"KERAS_BACKEND\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #98C379\">\"jax\"<\/span><span style=\"color: #ABB2BF\">)<\/span>  <span style=\"color: #7F848E\"># \u0434\u043e import keras<\/span>\n\n<span style=\"color: #C678DD\">import<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">numpy<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #C678DD\">as<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">np<\/span>\n<span style=\"color: #C678DD\">import<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">keras<\/span>\n<span style=\"color: #C678DD\">from<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">keras<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #C678DD\">import<\/span> <span style=\"color: #E06C75\">layers<\/span>\n\n<span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">utils<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">set_random_seed<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">42<\/span><span style=\"color: #ABB2BF\">)<\/span>\n\n<span style=\"color: #7F848E\"># \u0414\u0430\u043d\u043d\u044b\u0435: \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438, \u043a\u043b\u0430\u0441\u0441 1 - \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0440\u0443\u0433\u0430 \u0440\u0430\u0434\u0438\u0443\u0441\u0430 1<\/span>\n<span style=\"color: #E06C75\">rng<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">np<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">random<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">default_rng<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">x<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">rng<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">uniform<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #56B6C2\">-<\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">size<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">2000<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">))<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">astype<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"float32\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">y<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">np<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">sum<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">x<\/span><span style=\"color: #56B6C2\">**<\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">axis<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">)<\/span> <span style=\"color: #56B6C2\">&lt;<\/span> <span style=\"color: #D19A66\">1.0<\/span><span style=\"color: #ABB2BF\">)<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">astype<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"float32\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">x_train<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">y_train<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">x<\/span><span style=\"color: #ABB2BF\">[:<\/span><span style=\"color: #D19A66\">1600<\/span><span style=\"color: #ABB2BF\">],<\/span> <span style=\"color: #E06C75\">y<\/span><span style=\"color: #ABB2BF\">[:<\/span><span style=\"color: #D19A66\">1600<\/span><span style=\"color: #ABB2BF\">]<\/span>\n<span style=\"color: #E06C75\">x_test<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">y_test<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">x<\/span><span style=\"color: #ABB2BF\">[<\/span><span style=\"color: #D19A66\">1600<\/span><span style=\"color: #ABB2BF\">:],<\/span> <span style=\"color: #E06C75\">y<\/span><span style=\"color: #ABB2BF\">[<\/span><span style=\"color: #D19A66\">1600<\/span><span style=\"color: #ABB2BF\">:]<\/span>\n\n<span style=\"color: #E06C75\">model<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Sequential<\/span><span style=\"color: #ABB2BF\">([<\/span>\n    <span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Input<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">shape<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,)),<\/span>\n    <span style=\"color: #E06C75\">layers<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Dense<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">16<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">activation<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"relu\"<\/span><span style=\"color: #ABB2BF\">),<\/span>\n    <span style=\"color: #E06C75\">layers<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Dense<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">16<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">activation<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"relu\"<\/span><span style=\"color: #ABB2BF\">),<\/span>\n    <span style=\"color: #E06C75\">layers<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Dense<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">activation<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"sigmoid\"<\/span><span style=\"color: #ABB2BF\">),<\/span>\n<span style=\"color: #ABB2BF\">])<\/span>\n\n<span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">compile<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">optimizer<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"adam\"<\/span><span style=\"color: #ABB2BF\">,<\/span>\n              <span style=\"color: #E06C75\">loss<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"binary_crossentropy\"<\/span><span style=\"color: #ABB2BF\">,<\/span>\n              <span style=\"color: #E06C75\">metrics<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">[<\/span><span style=\"color: #98C379\">\"accuracy\"<\/span><span style=\"color: #ABB2BF\">])<\/span>\n\n<span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">fit<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">x_train<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">y_train<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">epochs<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">30<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">batch_size<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">32<\/span><span style=\"color: #ABB2BF\">,<\/span>\n          <span style=\"color: #E06C75\">validation_split<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">0.2<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">verbose<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">)<\/span>\n\n<span style=\"color: #E06C75\">loss<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">acc<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">evaluate<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">x_test<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">y_test<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">verbose<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E5C07B\">print<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"backend:\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">backend<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">backend<\/span><span style=\"color: #ABB2BF\">())<\/span>\n<span style=\"color: #E5C07B\">print<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">f\"test accuracy: {<\/span><span style=\"color: #E06C75\">acc<\/span><span style=\"color: #98C379\">:.3f}\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n\n<span style=\"color: #E06C75\">probe<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">np<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">array<\/span><span style=\"color: #ABB2BF\">([[<\/span><span style=\"color: #D19A66\">0.0<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #D19A66\">0.0<\/span><span style=\"color: #ABB2BF\">],<\/span> <span style=\"color: #ABB2BF\">[<\/span><span style=\"color: #D19A66\">1.8<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #D19A66\">1.8<\/span><span style=\"color: #ABB2BF\">]],<\/span> <span style=\"color: #E06C75\">dtype<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"float32\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">proba<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">predict<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">probe<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">verbose<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E5C07B\">print<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"P(\u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0440\u0443\u0433\u0430):\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">proba<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">ravel<\/span><span style=\"color: #ABB2BF\">()<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">round<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">3<\/span><span style=\"color: #ABB2BF\">))<\/span>\n<span style=\"color: #E5C07B\">print<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"\u043a\u043b\u0430\u0441\u0441\u044b:\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">proba<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">ravel<\/span><span style=\"color: #ABB2BF\">()<\/span> <span style=\"color: #56B6C2\">&gt;<\/span> <span style=\"color: #D19A66\">0.5<\/span><span style=\"color: #ABB2BF\">)<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">astype<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E5C07B\">int<\/span><span style=\"color: #ABB2BF\">))<\/span><\/code><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434 \u043d\u0430 \u0431\u044d\u043a\u0435\u043d\u0434\u0435 JAX:<\/p>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\">backend: jax\ntest accuracy: 0.995\nP(\u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0440\u0443\u0433\u0430): [0.937 0.   ]\n\u043a\u043b\u0430\u0441\u0441\u044b: [1 0]\n<\/code><\/pre>\n<p>\u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 400 \u0442\u043e\u0447\u043a\u0430\u0445 &#8212; \u043e\u043a\u043e\u043b\u043e 99%, \u0446\u0435\u043d\u0442\u0440 \u043a\u0440\u0443\u0433\u0430 \u0441\u0435\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442 \u043a \u043a\u043b\u0430\u0441\u0441\u0443 1, \u0434\u0430\u043b\u044c\u043d\u0438\u0439 \u0443\u0433\u043e\u043b &#8212; \u043a \u043a\u043b\u0430\u0441\u0441\u0443 0. \u041d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0431\u044d\u043a\u0435\u043d\u0434\u0430\u0445 \u0446\u0438\u0444\u0440\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0442\u043e\u043c \u0436\u0435 \u0441\u0438\u0434\u0435: \u0443 PyTorch \u0432\u044b\u0448\u043b\u043e 0.995 \u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c 0.977, \u0443 TensorFlow &#8212; 0.993 \u0438 0.981. \u042d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: \u0443 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<h3>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433<\/h3>\n<ol>\n<li><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras.Input(shape=(2,))<\/code> &#8212; \u0444\u043e\u0440\u043c\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430: \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430 (x \u0438 y). \u0420\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u0430 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442.<\/li>\n<li><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">Dense(16, activation=\"relu\")<\/code> &#8212; \u043f\u043e\u043b\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0438\u0437 16 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432. \u041d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">relu<\/code>: \u0431\u0435\u0437 \u043d\u0435\u0435 \u043b\u044e\u0431\u0430\u044f \u0441\u0442\u043e\u043f\u043a\u0430 Dense-\u0441\u043b\u043e\u0435\u0432 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u0439 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043a\u0440\u0443\u0433\u0430 \u0441\u0435\u0442\u044c \u043d\u0435 \u0432\u044b\u0443\u0447\u0438\u0442.<\/li>\n<li><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">Dense(1, activation=\"sigmoid\")<\/code> &#8212; \u043e\u0434\u0438\u043d \u0432\u044b\u0445\u043e\u0434 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0442 0 \u0434\u043e 1, \u0435\u0433\u043e \u0447\u0438\u0442\u0430\u044e\u0442 \u043a\u0430\u043a \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0430 1.<\/li>\n<li><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">compile()<\/code> \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u0441 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c (<code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">adam<\/code>), \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043f\u043e\u0442\u0435\u0440\u044c (<code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">binary_crossentropy<\/code> &#8212; \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432) \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438. \u0421\u0430\u043c <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">compile()<\/code> \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0431\u0443\u0447\u0430\u0435\u0442.<\/li>\n<li><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">fit()<\/code> &#8212; \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435: 30 \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c (\u044d\u043f\u043e\u0445) \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043f\u043e 32 \u043f\u0440\u0438\u043c\u0435\u0440\u0430, 20% \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e.<\/li>\n<li><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">evaluate()<\/code> \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043f\u043e\u0442\u0435\u0440\u044e \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">predict()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438, \u0430 \u043d\u0435 \u043a\u043b\u0430\u0441\u0441\u044b.<\/li>\n<\/ol>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c: \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0438 \u043e\u0434\u0438\u043d \u0432\u044b\u0445\u043e\u0434 \u0441 sigmoid &#8212; <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">binary_crossentropy<\/code>; \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0432\u044b\u0445\u043e\u0434 softmax &#8212; <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">sparse_categorical_crossentropy<\/code>, \u0435\u0441\u043b\u0438 \u043c\u0435\u0442\u043a\u0438 &#8212; \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0438\u043b\u0438 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">categorical_crossentropy<\/code>, \u0435\u0441\u043b\u0438 \u043c\u0435\u0442\u043a\u0438 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b one-hot.<\/p>\n<h2 id=\"s4\">Functional API: \u043a\u043e\u0433\u0434\u0430 Sequential \u043c\u0430\u043b\u043e<\/h2>\n<p><strong>Sequential<\/strong> \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0438 \u0438\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u0433\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u043e\u0439: \u043e\u0434\u0438\u043d \u0432\u0445\u043e\u0434, \u043e\u0434\u0438\u043d \u0432\u044b\u0445\u043e\u0434, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e. <strong>Functional API<\/strong> \u043d\u0443\u0436\u0435\u043d, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0445\u043e\u0434\u043e\u0432 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u043e\u0432, \u043e\u0431\u0449\u0438\u0435 \u0441\u043b\u043e\u0438. \u0412 \u043d\u0435\u043c \u0441\u043b\u043e\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0442 \u0442\u0435\u043d\u0437\u043e\u0440\u0430, \u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442 \u0438\u0437 \u0432\u0445\u043e\u0434\u0430 \u0438 \u0432\u044b\u0445\u043e\u0434\u0430.<\/p>\n<p>\u0422\u0430 \u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u043b\u043e\u0439 (\u0432\u0435\u0442\u043a\u0430-\u043e\u0431\u0445\u043e\u0434), \u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b:<\/p>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\"><span style=\"color: #C678DD\">import<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">os<\/span>\n<span style=\"color: #E06C75\">os<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">environ<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">setdefault<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"KERAS_BACKEND\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #98C379\">\"jax\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n\n<span style=\"color: #C678DD\">import<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">numpy<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #C678DD\">as<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">np<\/span>\n<span style=\"color: #C678DD\">import<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">keras<\/span>\n<span style=\"color: #C678DD\">from<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #E06C75\">keras<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #C678DD\">import<\/span> <span style=\"color: #E06C75\">layers<\/span>\n\n<span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">utils<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">set_random_seed<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">42<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">rng<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">np<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">random<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">default_rng<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">x<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">rng<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">uniform<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #56B6C2\">-<\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">size<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">2000<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">))<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">astype<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"float32\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">y<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">np<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">sum<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">x<\/span><span style=\"color: #56B6C2\">**<\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">axis<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">)<\/span> <span style=\"color: #56B6C2\">&lt;<\/span> <span style=\"color: #D19A66\">1.0<\/span><span style=\"color: #ABB2BF\">)<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">astype<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"float32\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n\n<span style=\"color: #E06C75\">inputs<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Input<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">shape<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,),<\/span> <span style=\"color: #E06C75\">name<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"xy\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">h<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">layers<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Dense<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">16<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">activation<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"relu\"<\/span><span style=\"color: #ABB2BF\">)(<\/span><span style=\"color: #E06C75\">inputs<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">h<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">layers<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Dense<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">16<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">activation<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"relu\"<\/span><span style=\"color: #ABB2BF\">)(<\/span><span style=\"color: #E06C75\">h<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #7F848E\"># \u0412\u0435\u0442\u043a\u0430-\u043e\u0431\u0445\u043e\u0434: \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438\u0434\u0443\u0442 \u043f\u0440\u044f\u043c\u043e \u043a \u0432\u044b\u0445\u043e\u0434\u0443<\/span>\n<span style=\"color: #E06C75\">merged<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">layers<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Concatenate<\/span><span style=\"color: #ABB2BF\">()([<\/span><span style=\"color: #E06C75\">h<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">inputs<\/span><span style=\"color: #ABB2BF\">])<\/span>\n<span style=\"color: #E06C75\">outputs<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">layers<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Dense<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">activation<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"sigmoid\"<\/span><span style=\"color: #ABB2BF\">)(<\/span><span style=\"color: #E06C75\">merged<\/span><span style=\"color: #ABB2BF\">)<\/span>\n\n<span style=\"color: #E06C75\">model<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">Model<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">inputs<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #E06C75\">inputs<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">outputs<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #E06C75\">outputs<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">name<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"circle\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">compile<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">optimizer<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"adam\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">loss<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"binary_crossentropy\"<\/span><span style=\"color: #ABB2BF\">,<\/span>\n              <span style=\"color: #E06C75\">metrics<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">[<\/span><span style=\"color: #98C379\">\"accuracy\"<\/span><span style=\"color: #ABB2BF\">])<\/span>\n<span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">fit<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">x<\/span><span style=\"color: #ABB2BF\">[:<\/span><span style=\"color: #D19A66\">1600<\/span><span style=\"color: #ABB2BF\">],<\/span> <span style=\"color: #E06C75\">y<\/span><span style=\"color: #ABB2BF\">[:<\/span><span style=\"color: #D19A66\">1600<\/span><span style=\"color: #ABB2BF\">],<\/span> <span style=\"color: #E06C75\">epochs<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">30<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">batch_size<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">32<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">verbose<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E5C07B\">print<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"params:\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">count_params<\/span><span style=\"color: #ABB2BF\">())<\/span>\n\n<span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">save<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"circle.keras\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">restored<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">keras<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">saving<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">load_model<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"circle.keras\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">probe<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">np<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">array<\/span><span style=\"color: #ABB2BF\">([[<\/span><span style=\"color: #D19A66\">0.0<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #D19A66\">0.0<\/span><span style=\"color: #ABB2BF\">]],<\/span> <span style=\"color: #E06C75\">dtype<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #98C379\">\"float32\"<\/span><span style=\"color: #ABB2BF\">)<\/span>\n<span style=\"color: #E06C75\">same<\/span> <span style=\"color: #56B6C2\">=<\/span> <span style=\"color: #E06C75\">np<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">allclose<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">model<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">predict<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">probe<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">verbose<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">),<\/span>\n                   <span style=\"color: #E06C75\">restored<\/span><span style=\"color: #56B6C2\">.<\/span><span style=\"color: #E06C75\">predict<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #E06C75\">probe<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">verbose<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #D19A66\">0<\/span><span style=\"color: #ABB2BF\">))<\/span>\n<span style=\"color: #E5C07B\">print<\/span><span style=\"color: #ABB2BF\">(<\/span><span style=\"color: #98C379\">\"\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0441\u043e\u0432\u043f\u0430\u043b:\"<\/span><span style=\"color: #ABB2BF\">,<\/span> <span style=\"color: #E06C75\">same<\/span><span style=\"color: #ABB2BF\">)<\/span><\/code><\/pre>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\">params: 339\n\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0441\u043e\u0432\u043f\u0430\u043b: True\n<\/code><\/pre>\n<p>\u0427\u0438\u0441\u043b\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438: \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 2&#215;16 \u0432\u0435\u0441\u043e\u0432 + 16 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0439 = 48, \u0432\u0442\u043e\u0440\u043e\u0439 16&#215;16 + 16 = 272, \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 16 + 2 = 18 \u0432\u0445\u043e\u0434\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c 18 \u0432\u0435\u0441\u043e\u0432 + 1 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 = 19. \u0418\u0442\u043e\u0433\u043e 339. \u0423 Sequential-\u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u044b\u0445\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e 16 \u0432\u0445\u043e\u0434\u043e\u0432, \u0442\u0430\u043c 337 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432.<\/p>\n<table>\n<thead>\n<tr>\n<th>\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439<\/th>\n<th>Sequential<\/th>\n<th>Functional API<\/th>\n<th>\u041f\u043e\u0434\u043a\u043b\u0430\u0441\u0441 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras.Model<\/code><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f<\/td>\n<td>\u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430<\/td>\n<td>\u043b\u044e\u0431\u043e\u0439 \u0433\u0440\u0430\u0444 \u0441\u043b\u043e\u0435\u0432<\/td>\n<td>\u043b\u044e\u0431\u0430\u044f, \u043b\u043e\u0433\u0438\u043a\u0430 \u0432 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">call()<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0445\u043e\u0434\u043e\u0432\/\u0432\u044b\u0445\u043e\u0434\u043e\u0432<\/td>\n<td>\u043d\u0435\u0442<\/td>\n<td>\u0434\u0430<\/td>\n<td>\u0434\u0430<\/td>\n<\/tr>\n<tr>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">summary()<\/code> \u0438 \u0441\u0445\u0435\u043c\u0430 \u0434\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/td>\n<td>\u0434\u0430<\/td>\n<td>\u0434\u0430<\/td>\n<td>\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e<\/td>\n<\/tr>\n<tr>\n<td>\u0421 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c<\/td>\n<td>\u043f\u0435\u0440\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/td>\n<td>\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f, \u043e\u0431\u0449\u0438\u0435 \u0441\u043b\u043e\u0438<\/td>\n<td>\u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"s5\">\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/h2>\n<p>\u0412 Keras 3 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 &#8212; \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">.keras<\/code> (\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0432\u0435\u0441\u0430 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430). \u0412\u044b\u0437\u043e\u0432 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">model.save(\"my_model\")<\/code> \u0431\u0435\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0430\u0434\u0430\u0435\u0442:<\/p>\n<pre style=\"background:#282c34;color:#abb2bf;border-radius:8px;padding:16px 20px;margin:20px 0;overflow-x:auto;font-size:14px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\"><code style=\"background:none\">ValueError: Invalid filepath extension for saving. Please add either a `.keras` extension for the native Keras format (recommended) or a `.h5` extension. Use `model.export(filepath)` if you want to export a SavedModel for use with TFLite\/TFServing\/etc. Received: filepath=my_model.\n<\/code><\/pre>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">.h5<\/code> \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0432 TF Serving, LiteRT, ONNX \u0438\u043b\u0438 OpenVINO \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">model.export()<\/code> (\u0444\u043e\u0440\u043c\u0430\u0442 \u0437\u0430\u0434\u0430\u044e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">format<\/code>, \u0434\u043b\u044f SavedModel \u043d\u0443\u0436\u0435\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 TensorFlow).<\/p>\n<p>\u0424\u0430\u0439\u043b \u043c\u043e\u0434\u0435\u043b\u0438 &#8212; \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0438\u0441\u043b\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">load_model()<\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">safe_mode=True<\/code> \u0438 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 Python-\u043a\u043e\u0434 \u0438\u0437 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">Lambda<\/code>-\u0441\u043b\u043e\u0435\u0432. \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041c\u043e\u0434\u0435\u043b\u0438 \u0438\u0437 \u043d\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0439\u0442\u0435 \u0432\u043e\u0432\u0441\u0435: <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">safe_mode<\/code> \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0440\u0438\u0441\u043a, \u043d\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0447\u0443\u0436\u043e\u0439 \u0444\u0430\u0439\u043b \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c.<\/p>\n<h2 id=\"s6\">\u041a\u043e\u0434 \u0438\u0437 \u0441\u0442\u0430\u0440\u044b\u0445 \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u043e\u0432: \u0447\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u0432 Keras 3<\/h2>\n<p>\u0421\u0442\u0430\u0442\u044c\u0438 2018-2021 \u0433\u043e\u0434\u043e\u0432 \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 MNIST \u0441 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 Keras 3 \u0443\u0436\u0435 \u043d\u0435\u0442. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u043d\u0430 3.15.1:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0421\u0442\u0430\u0440\u044b\u0439 \u043a\u043e\u0434<\/th>\n<th>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 Keras 3<\/th>\n<th>\u0417\u0430\u043c\u0435\u043d\u0430<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">from keras.utils import np_utils<\/code><\/td>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">ImportError: cannot import name 'np_utils'<\/code><\/td>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">from keras.utils import to_categorical<\/code><\/td>\n<\/tr>\n<tr>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">model.predict_classes(x)<\/code><\/td>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">AttributeError: 'Sequential' object has no attribute 'predict_classes'<\/code><\/td>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">model.predict(x) &gt; 0.5<\/code> \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">argmax(axis=1)<\/code> \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445<\/td>\n<\/tr>\n<tr>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">model.save(\"dir\")<\/code><\/td>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">ValueError<\/code> (\u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435)<\/td>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">model.save(\"model.keras\")<\/code><\/td>\n<\/tr>\n<tr>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">import tensorflow.keras<\/code> \u0431\u0435\u0437 TensorFlow<\/td>\n<td>\u043d\u0443\u0436\u0435\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 TensorFlow<\/td>\n<td><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">import keras<\/code> + \u0432\u044b\u0431\u043e\u0440 \u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"s7\">\u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c<\/h2>\n<ul>\n<li><strong><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">ModuleNotFoundError: No module named 'tensorflow'<\/code> \u043f\u0440\u0438 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">import keras<\/code><\/strong> &#8212; \u043d\u0435 \u0437\u0430\u0434\u0430\u043d \u0431\u044d\u043a\u0435\u043d\u0434, \u0430 TensorFlow \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u0417\u0430\u0434\u0430\u0439\u0442\u0435 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">KERAS_BACKEND<\/code> \u0434\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0430.<\/li>\n<li><strong>\u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0440\u0430\u0441\u0442\u0435\u0442 \u043e\u0442 \u044d\u043f\u043e\u0445\u0438 \u043a \u044d\u043f\u043e\u0445\u0435<\/strong> &#8212; \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043b\u043e\u0439 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u044b (sigmoid + <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">binary_crossentropy<\/code>), \u0430 \u043c\u0435\u0442\u043a\u0438 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 0 \u0438 1, \u0430 \u043d\u0435 1 \u0438 2.<\/li>\n<li><strong><code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">ValueError: ... expected axis -1 of input shape to have value 2, but received input with shape (4, 3)<\/code><\/strong> &#8212; \u0444\u043e\u0440\u043c\u0430 \u0432 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras.Input<\/code> \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438: \u0443 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">x<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u0434\u0432\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u0430.<\/li>\n<li><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438<\/strong> &#8212; \u0431\u0435\u0437 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras.utils.set_random_seed()<\/code> \u0432\u0435\u0441\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e; \u043d\u0430 GPU \u0447\u0430\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0435\u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0434\u0430\u0436\u0435 \u0441 \u0441\u0438\u0434\u043e\u043c.<\/li>\n<\/ul>\n<h2 id=\"s8\">\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<ul>\n<li>Keras &#8212; \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0431\u044d\u043a\u0435\u043d\u0434: \u0432 Keras 3 \u044d\u0442\u043e JAX, TensorFlow \u0438\u043b\u0438 PyTorch.<\/li>\n<li>\u0411\u044d\u043a\u0435\u043d\u0434 \u0437\u0430\u0434\u0430\u044e\u0442 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">KERAS_BACKEND<\/code> \u0434\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0430; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Keras \u0438\u0449\u0435\u0442 TensorFlow.<\/li>\n<li>\u0426\u0435\u043f\u043e\u0447\u043a\u0443 \u0441\u043b\u043e\u0435\u0432 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 Sequential, \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0445\u043e\u0434\u043e\u0432 &#8212; \u0447\u0435\u0440\u0435\u0437 Functional API.<\/li>\n<li>\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0446\u0438\u043a\u043b \u043e\u0434\u0438\u043d \u043d\u0430 \u0432\u0441\u0435 \u043c\u043e\u0434\u0435\u043b\u0438: <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">compile()<\/code> -&gt; <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">fit()<\/code> -&gt; <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">evaluate()<\/code> -&gt; <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">predict()<\/code> -&gt; <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">save(\"*.keras\")<\/code>.<\/li>\n<li>\u041a\u043e\u0434 \u0438\u0437 \u0441\u0442\u0430\u0440\u044b\u0445 \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u043e\u0432 (<code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">np_utils<\/code>, <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">predict_classes<\/code>) \u0432 Keras 3 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 &#8212; \u0437\u0430\u043c\u0435\u043d\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u044b\u0448\u0435.<\/li>\n<\/ul>\n<h2 id=\"s9\">\u0413\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \/ \u0441\u0432\u044f\u0437\u044c \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439<\/h2>\n<div class=\"oj-cta\" style=\"background:#fbf4e4;border-left:4px solid #c9962b;border-radius:8px;padding:16px 20px;margin:24px 0\">\n<p style=\"margin:0 0 8px\"><strong>\u041e\u0441\u0432\u043e\u0439\u0442\u0435 \u0442\u0435\u043c\u0443 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435<\/strong><\/p>\n<p>Keras \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0443 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438: \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432, \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438. \u041d\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 &#8212; \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433: \u0434\u043e \u043d\u0435\u0435 \u0438\u0434\u0443\u0442 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0448\u0438\u0431\u0430\u0435\u0442\u0441\u044f. \u042d\u0442\u0443 \u0431\u0430\u0437\u0443 &#8212; Python \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 &#8212; \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430 \u043a\u0443\u0440\u0441\u0435 <a href=\"https:\/\/otus.ru\/lessons\/ml-basic\/?int_article=keras-opisanie-i-osobennosti&amp;int_place=article&amp;int_variant=v1\">\u00abMachine Learning. Basic\u00bb<\/a>.<\/p>\n<\/div>\n<div class=\"oj-cta\" style=\"background:#fbf4e4;border-left:4px solid #c9962b;border-radius:8px;padding:16px 20px;margin:24px 0\">\n<p style=\"margin:0 0 8px\"><strong>\u041e\u0441\u0432\u043e\u0439\u0442\u0435 \u0442\u0435\u043c\u0443 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435<\/strong><\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u0436\u0438\u0432\u0443\u044e, \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 <a href=\"https:\/\/otus.ru\/events\/?int_article=keras-opisanie-i-osobennosti&amp;int_place=article&amp;int_variant=v1\">\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0443\u0440\u043e\u043a\u0430\u0445 Otus<\/a>.<\/p>\n<\/div>\n<h2 id=\"s10\">FAQ<\/h2>\n<p><strong>\u041d\u0443\u0436\u043d\u0430 \u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0441 Keras?<\/strong><br \/>\n\u041d\u0435\u0442. \u0423\u0447\u0435\u0431\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0440\u043e\u0434\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u044b\u0448\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0430 CPU \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. GPU \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0441\u0435\u0442\u0435\u0439 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439; \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u0432\u044f\u0442 GPU-\u0441\u0431\u043e\u0440\u043a\u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u044d\u043a\u0435\u043d\u0434\u0430.<\/p>\n<p><strong>\u0427\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b: Keras \u0438\u043b\u0438 \u00ab\u0447\u0438\u0441\u0442\u044b\u0439\u00bb PyTorch?<\/strong><br \/>\nKeras \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u044f\u043c\u0438 \u0438 \u0446\u0438\u043a\u043b\u043e\u043c <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">fit()<\/code>. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u0435\u043d \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0432\u043e\u0439 \u0446\u0438\u043a\u043b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 PyTorch, \u043f\u0438\u0448\u0443\u0442 \u043d\u0430 PyTorch \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e; Keras 3 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u0442\u044c \u043e\u0431\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043d\u0430 \u0431\u044d\u043a\u0435\u043d\u0434\u0435 torch.<\/p>\n<p><strong>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 Keras 3 \u043c\u043e\u0434\u0435\u043b\u044c, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u0443\u044e \u0432 Keras 2?<\/strong><br \/>\n\u0424\u0430\u0439\u043b\u044b <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">.h5<\/code> \u0438 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">.keras<\/code> \u0438\u0437 \u043f\u043e\u0437\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 Keras 2 \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f; \u0441\u0442\u0430\u0440\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 SavedModel (\u043f\u0430\u043f\u043a\u0430) \u0447\u0435\u0440\u0435\u0437 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">load_model()<\/code> \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0431\u0435\u0440\u0442\u043a\u0430 <code style=\"background:#eef0f3;color:#24292f;border-radius:4px;padding:1px 5px;font-size:0.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace\">keras.layers.TFSMLayer<\/code> \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Keras &#8212; \u044d\u0442\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Python \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439: \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0441\u043b\u043e\u0435\u0432, \u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a (\u0431\u044d\u043a\u0435\u043d\u0434). \u0412 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0435\u0439\u043a\u0435 Keras 3 \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c JAX, TensorFlow \u0438\u043b\u0438 PyTorch &#8212; \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u0434 \u043c\u043e\u0434\u0435\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0438\u0437 \u043d\u0438\u0445. \u041d\u0438\u0436\u0435 &#8212; \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d Keras, \u0447\u0435\u043c Sequential \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":6037,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[27,277],"class_list":["post-6036","post","type-post","status-publish","format-standard","has-post-thumbnail","","category-polza","tag-python","tag-mashinnoe-obuchenie-2"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Keras 3 \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 tf.keras: \u0431\u044d\u043a\u0435\u043d\u0434\u044b JAX, TensorFlow \u0438 PyTorch, Sequential \u0438 Functional API, compile, fit, predict \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"A. Pavlenko\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#article\",\"name\":\"Keras: \\u0447\\u0442\\u043e \\u044d\\u0442\\u043e \\u0438 \\u043a\\u0430\\u043a \\u0441\\u043e\\u0431\\u0440\\u0430\\u0442\\u044c \\u043f\\u0435\\u0440\\u0432\\u0443\\u044e \\u043d\\u0435\\u0439\\u0440\\u043e\\u0441\\u0435\\u0442\\u044c | Otus\",\"headline\":\"Keras: \\u0447\\u0442\\u043e \\u044d\\u0442\\u043e \\u0437\\u0430 \\u0431\\u0438\\u0431\\u043b\\u0438\\u043e\\u0442\\u0435\\u043a\\u0430 \\u0438 \\u043a\\u0430\\u043a \\u0441\\u043e\\u0431\\u0440\\u0430\\u0442\\u044c \\u043f\\u0435\\u0440\\u0432\\u0443\\u044e \\u043d\\u0435\\u0439\\u0440\\u043e\\u0441\\u0435\\u0442\\u044c\",\"author\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/a-pavlenko\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/oj-1080x7207-1.jpg\",\"width\":2245,\"height\":1587},\"datePublished\":\"2026-09-23T09:00:00+00:00\",\"dateModified\":\"2026-09-25T15:34:14+00:00\",\"inLanguage\":\"ru-RU\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#webpage\"},\"articleSection\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435, Python, \\u043c\\u0430\\u0448\\u0438\\u043d\\u043d\\u043e\\u0435 \\u043e\\u0431\\u0443\\u0447\\u0435\\u043d\\u0438\\u0435\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/otus.ru\\\/journal\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/#listItem\",\"name\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/#listItem\",\"position\":2,\"name\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435\",\"item\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#listItem\",\"name\":\"Keras: \\u0447\\u0442\\u043e \\u044d\\u0442\\u043e \\u0437\\u0430 \\u0431\\u0438\\u0431\\u043b\\u0438\\u043e\\u0442\\u0435\\u043a\\u0430 \\u0438 \\u043a\\u0430\\u043a \\u0441\\u043e\\u0431\\u0440\\u0430\\u0442\\u044c \\u043f\\u0435\\u0440\\u0432\\u0443\\u044e \\u043d\\u0435\\u0439\\u0440\\u043e\\u0441\\u0435\\u0442\\u044c\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#listItem\",\"position\":3,\"name\":\"Keras: \\u0447\\u0442\\u043e \\u044d\\u0442\\u043e \\u0437\\u0430 \\u0431\\u0438\\u0431\\u043b\\u0438\\u043e\\u0442\\u0435\\u043a\\u0430 \\u0438 \\u043a\\u0430\\u043a \\u0441\\u043e\\u0431\\u0440\\u0430\\u0442\\u044c \\u043f\\u0435\\u0440\\u0432\\u0443\\u044e \\u043d\\u0435\\u0439\\u0440\\u043e\\u0441\\u0435\\u0442\\u044c\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/#listItem\",\"name\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#organization\",\"name\":\"\\u041e\\u0442\\u0443\\u0441 \\u043e\\u043d\\u043b\\u0430\\u0439\\u043d-\\u043e\\u0431\\u0440\\u0430\\u0437\\u043e\\u0432\\u0430\\u043d\\u0438\\u0435\",\"description\":\"\\u0411\\u043b\\u043e\\u0433 \\u043f\\u0440\\u043e IT\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/\",\"telephone\":\"+74999389202\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/OTUS-journal-logo-180x180-1.png\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#organizationLogo\",\"width\":180,\"height\":180},\"image\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCetgtvy93o3i3CvyGXKFU3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/a-pavlenko\\\/#author\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/a-pavlenko\\\/\",\"name\":\"A. Pavlenko\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/13488c7d5b657aaaf1808afd398f71e0225df07dd94eb7e5fcdfc45feff43cb5?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"A. Pavlenko\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#webpage\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/\",\"name\":\"Keras: \\u0447\\u0442\\u043e \\u044d\\u0442\\u043e \\u0438 \\u043a\\u0430\\u043a \\u0441\\u043e\\u0431\\u0440\\u0430\\u0442\\u044c \\u043f\\u0435\\u0440\\u0432\\u0443\\u044e \\u043d\\u0435\\u0439\\u0440\\u043e\\u0441\\u0435\\u0442\\u044c | Otus\",\"description\":\"\\u0427\\u0442\\u043e \\u0442\\u0430\\u043a\\u043e\\u0435 Keras 3 \\u0438 \\u0447\\u0435\\u043c \\u043e\\u043d \\u043e\\u0442\\u043b\\u0438\\u0447\\u0430\\u0435\\u0442\\u0441\\u044f \\u043e\\u0442 tf.keras: \\u0431\\u044d\\u043a\\u0435\\u043d\\u0434\\u044b JAX, TensorFlow \\u0438 PyTorch, Sequential \\u0438 Functional API, compile, fit, predict \\u0438 \\u0441\\u043e\\u0445\\u0440\\u0430\\u043d\\u0435\\u043d\\u0438\\u0435 \\u043c\\u043e\\u0434\\u0435\\u043b\\u0438.\",\"inLanguage\":\"ru-RU\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/a-pavlenko\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/a-pavlenko\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/oj-1080x7207-1.jpg\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#mainImage\",\"width\":2245,\"height\":1587},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/keras-opisanie-i-osobennosti\\\/#mainImage\"},\"datePublished\":\"2026-09-23T09:00:00+00:00\",\"dateModified\":\"2026-09-25T15:34:14+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#website\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/\",\"name\":\"OTUS \\u0416\\u0443\\u0440\\u043d\\u0430\\u043b - \\u0411\\u043b\\u043e\\u0433 \\u043f\\u0440\\u043e IT\",\"alternateName\":\"OTUS \\u0416\\u0443\\u0440\\u043d\\u0430\\u043b\",\"description\":\"\\u0411\\u043b\\u043e\\u0433 \\u043f\\u0440\\u043e IT\",\"inLanguage\":\"ru-RU\",\"publisher\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c | Otus","description":"\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Keras 3 \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 tf.keras: \u0431\u044d\u043a\u0435\u043d\u0434\u044b JAX, TensorFlow \u0438 PyTorch, Sequential \u0438 Functional API, compile, fit, predict \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438.","canonical_url":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#article","name":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c | Otus","headline":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/04\/oj-1080x7207-1.jpg","width":2245,"height":1587},"datePublished":"2026-09-23T09:00:00+00:00","dateModified":"2026-09-25T15:34:14+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, Python, \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"Home","item":"https:\/\/otus.ru\/journal\/","nextItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/category\/polza\/#listItem","name":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435"}},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/category\/polza\/#listItem","position":2,"name":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435","item":"https:\/\/otus.ru\/journal\/category\/polza\/","nextItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#listItem","name":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c"},"previousItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#listItem","position":3,"name":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c","previousItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/category\/polza\/#listItem","name":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435"}}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","description":"\u0411\u043b\u043e\u0433 \u043f\u0440\u043e IT","url":"https:\/\/otus.ru\/journal\/","telephone":"+74999389202","logo":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2026\/04\/OTUS-journal-logo-180x180-1.png","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#organizationLogo","width":180,"height":180},"image":{"@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#organizationLogo"},"sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"]},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/13488c7d5b657aaaf1808afd398f71e0225df07dd94eb7e5fcdfc45feff43cb5?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#webpage","url":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/","name":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c | Otus","description":"\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Keras 3 \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 tf.keras: \u0431\u044d\u043a\u0435\u043d\u0434\u044b JAX, TensorFlow \u0438 PyTorch, Sequential \u0438 Functional API, compile, fit, predict \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438.","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/04\/oj-1080x7207-1.jpg","@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#mainImage","width":2245,"height":1587},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/#mainImage"},"datePublished":"2026-09-23T09:00:00+00:00","dateModified":"2026-09-25T15:34:14+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS \u0416\u0443\u0440\u043d\u0430\u043b - \u0411\u043b\u043e\u0433 \u043f\u0440\u043e IT","alternateName":"OTUS \u0416\u0443\u0440\u043d\u0430\u043b","description":"\u0411\u043b\u043e\u0433 \u043f\u0440\u043e IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}},"aioseo_meta_data":{"post_id":"6036","title":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c | Otus","description":"\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Keras 3 \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 tf.keras: \u0431\u044d\u043a\u0435\u043d\u0434\u044b JAX, TensorFlow \u0438 PyTorch, Sequential \u0438 Functional API, compile, fit, predict \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438.","keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-04-07 19:16:03","updated":"2026-09-25 17:27:11","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/otus.ru\/journal\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/otus.ru\/journal\/category\/polza\/\" title=\"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435\">\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tKeras: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/otus.ru\/journal\/"},{"label":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435","link":"https:\/\/otus.ru\/journal\/category\/polza\/"},{"label":"Keras: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c","link":"https:\/\/otus.ru\/journal\/keras-opisanie-i-osobennosti\/"}],"_links":{"self":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts\/6036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/comments?post=6036"}],"version-history":[{"count":3,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts\/6036\/revisions"}],"predecessor-version":[{"id":13047,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts\/6036\/revisions\/13047"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/media\/6037"}],"wp:attachment":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/media?parent=6036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/categories?post=6036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/tags?post=6036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}