{"id":30028,"date":"2019-10-31T21:33:18","date_gmt":"2019-10-31T18:33:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rabotaem-s-nejrosetyami-chek-list-dlya-otladki\/"},"modified":"2019-10-31T21:33:18","modified_gmt":"2019-10-31T18:33:18","slug":"rabotaem-s-nejrosetyami-chek-list-dlya-otladki","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/rabotaem-s-nejrosetyami-chek-list-dlya-otladki","title":{"rendered":"Wir arbeiten mit neuronalen Netzwerken: Checkliste zur Fehlersuche","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wir arbeiten mit neuronalen Netzwerken: Checkliste zur Fehlersuche\" src=\"\/wp-content\/uploads\/2019\/03\/8ce45093bfe44092cb25d947c32bb0b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nDer Code von Softwareprodukten f\u00fcr maschinelles Lernen ist oft komplex und verwirrend. Das Entdecken und Beheben von Bugs in ihm ist eine ressourcenintensive Aufgabe. Selbst die einfachsten <noindex><a rel=\"nofollow\" href=\"https:\/\/cs.stanford.edu\/people\/eroberts\/courses\/soco\/projects\/neural-networks\/Architecture\/feedforward.html\">Neuronalen Netze mit direkter Verbindung<\/a><\/noindex> erfordern einen ernsthaften Ansatz zur Netzwerkarchitektur, zur Initialisierung von Gewichten und zur Optimierung des Netzwerks. Ein kleiner Fehler kann zu unangenehmen Problemen f\u00fchren.<\/p>\n<p>Dieser Artikel befasst sich mit dem Debugging-Algorithmus f\u00fcr Ihre neuronalen Netzwerke.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Skillbox empfiehlt:<\/b> Praktischer Kurs <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/python\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=PTNDEV&amp;utm_content=articles&amp;utm_term=neuronet\">Python-Entwickler von Grund auf<\/a><\/noindex>.<\/p>\n<p><b>Wir erinnern daran:<\/b> <i>alle Leser von \u201eHabr\u201c erhalten einen Rabatt von 10.000 Rubel bei der Anmeldung zu einem beliebigen Kurs von Skillbox mit dem Aktionscode \u201eHabr\u201c.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h3>Der Algorithmus besteht aus f\u00fcnf Phasen:<\/h3>\n<p><\/p>\n<ul>\n<li>ein einfacher Start;<\/li>\n<li>\u00dcberpr\u00fcfung der Verluste;<\/li>\n<li>\u00dcberpr\u00fcfung der Zwischenresultate und Verbindungen;<\/li>\n<li>Diagnose der Parameter;<\/li>\n<li>\u00dcberwachung der Leistung.<\/li>\n<\/ul>\n<p>\nWenn Ihnen etwas interessanter erscheint als das andere, k\u00f6nnen Sie sofort zu diesen Abschnitten wechseln. <\/p>\n<h3>Ein einfacher Start<\/h3>\n<p>\nEine neuronale Netzwerk mit komplexer Architektur, Regularisierung und Lernratenplaner zu debuggen, ist schwieriger als eine normale. Hier schummeln wir etwas, da dieser Punkt nur indirekt mit dem Debugging zu tun hat, aber es ist dennoch eine wichtige Empfehlung.<\/p>\n<p>Ein einfacher Start besteht darin, ein vereinfachtes Modell zu erstellen und es mit einem Datensatz (Punkt) zu trainieren.<\/p>\n<p><b>Zuerst erstellen wir ein vereinfachtes Modell<\/b><\/p>\n<p>F\u00fcr einen schnellen Start erstellen wir ein kleines Netzwerk mit einer einzigen versteckten Schicht und \u00fcberpr\u00fcfen, ob alles korrekt funktioniert. Dann machen wir das Modell schrittweise komplizierter, indem wir jeden neuen Aspekt seiner Struktur (eine zus\u00e4tzliche Schicht, Parameter usw.) \u00fcberpr\u00fcfen und weiterarbeiten.<\/p>\n<p><b>Trainieren Sie das Modell mit einem einzigen Datensatz (Punkt) von Daten<\/b><\/p>\n<p>Zur schnellen \u00dcberpr\u00fcfung der Funktionsf\u00e4higkeit Ihres Projekts k\u00f6nnen Sie ein oder zwei Datenpunkte zum Trainieren verwenden, um zu best\u00e4tigen, dass das System korrekt funktioniert. Das neuronale Netzwerk sollte eine Genauigkeit von 100 % im Training und in der \u00dcberpr\u00fcfung zeigen. Wenn nicht, dann ist entweder das Modell zu klein oder Sie haben bereits einen Bug.<\/p>\n<p>Selbst wenn alles gut aussieht, bereiten Sie das Modell darauf vor, eine oder mehrere Epochen zu durchlaufen, bevor Sie fortfahren.<\/p>\n<h3>Bewertung der Verluste<\/h3>\n<p>\nDie Bewertung der Verluste ist der Hauptweg, um die Leistung des Modells zu verfeinern. Sie m\u00fcssen sicherstellen, dass der Verlust mit der Aufgabe \u00fcbereinstimmt und die Verlustfunktionen auf der richtigen Skala bewertet werden. Wenn Sie mehr als einen Verlusttyp verwenden, stellen Sie sicher, dass alle von gleicher Ordnung sind und richtig skaliert werden.<\/p>\n<p>Es ist wichtig, auf die anf\u00e4nglichen Verluste zu achten. \u00dcberpr\u00fcfen Sie, wie nah das tats\u00e4chliche Ergebnis der Erwartung ist, wenn das Modell mit einer zuf\u00e4lligen Annahme gestartet wurde. In <noindex><a rel=\"nofollow\" href=\"http:\/\/cs231n.github.io\/neural-networks-3\/#baby\">Andrei Karpatys Arbeit wird Folgendes vorgeschlagen<\/a><\/noindex>: \u201eStellen Sie sicher, dass Sie das erwartete Ergebnis erzielen, wenn Sie mit einer kleinen Anzahl von Parametern arbeiten. Es ist besser, sofort den Verlust zu \u00fcberpr\u00fcfen (indem der Regularisierungsgrad auf Null gesetzt wird). Zum Beispiel erwarten wir f\u00fcr CIFAR-10 mit dem Softmax-Klassifikator, dass die anf\u00e4nglichen Verluste 2.302 betragen, weil die erwartete diffuse Wahrscheinlichkeit 0.1 f\u00fcr jede Klasse betr\u00e4gt (da es 10 Klassen gibt) und der Softmax-Verlust die negative logarithmische Wahrscheinlichkeit der richtigen Klasse ist, also \u2013ln (0.1) = 2.302.\u201c<\/p>\n<p>F\u00fcr das bin\u00e4re Beispiel wird einfach eine analoge Berechnung f\u00fcr jede der Klassen durchgef\u00fchrt. Hier sind beispielsweise die Daten: 20 % 0&#8217;s und 80 % 1&#8217;s. Der erwartete anf\u00e4ngliche Verlust betr\u00e4gt bis zu \u20130,2ln (0,5) \u20130,8ln (0,5) = 0,693147. Wenn das Ergebnis gr\u00f6\u00dfer als 1 ist, kann das darauf hindeuten, dass die Gewichte des neuronalen Netzwerks nicht richtig ausgewogen sind oder die Daten nicht normalisiert sind.<\/p>\n<h3>Wir \u00fcberpr\u00fcfen die Zwischenergebnisse und Verbindungen <\/h3>\n<p>\nF\u00fcr das Debugging des Neuralnetzwerks ist es notwendig, die Dynamik der Prozesse innerhalb des Netzwerks und die Rolle der einzelnen Zwischenschichten zu verstehen, da sie miteinander verbunden sind. Hier sind typische Fehler, mit denen Sie m\u00f6glicherweise konfrontiert werden:<\/p>\n<ul>\n<li>falsche Ausdr\u00fccke f\u00fcr die Gradientenaktualisierungen;<\/li>\n<li>Gewichtsaktualisierungen werden nicht angewendet;<\/li>\n<li>verschwindende oder explodierende Gradienten (exploding gradients).<\/li>\n<\/ul>\n<p>\nWenn die Gradientenwerte null sind, bedeutet das, dass die Lernrate im Optimierer zu niedrig ist oder dass Sie mit einem falschen Ausdruck f\u00fcr die Gradientenaktualisierung konfrontiert sind.<\/p>\n<p>Dar\u00fcber hinaus sollten die Werte der Aktivierungsfunktionen, Gewichte und Aktualisierungen jeder Schicht \u00fcberwacht werden. Zum Beispiel sollte die Gr\u00f6\u00dfe der Parameteraktualisierungen (Gewichte und Bias) <noindex><a rel=\"nofollow\" href=\"https:\/\/cs231n.github.io\/neural-networks-3\/#summary\">1-e3 betragen<\/a><\/noindex>.<\/p>\n<p>Es gibt ein Ph\u00e4nomen, das als \u201eDying ReLU\u201c bekannt ist oder <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Vanishing_gradient_problem\">\u201edas Problem des verschwindenden Gradienten\u201c<\/a><\/noindex>, bei dem ReLU-Neuronen null ausgeben, nachdem sie einen gro\u00dfen negativen Bias-Wert f\u00fcr ihre Gewichte gelernt haben. Diese Neuronen werden an keinem Punkt der Daten jemals wieder aktiviert.<\/p>\n<p>Sie k\u00f6nnen die Gradienten\u00fcberpr\u00fcfung verwenden, um diese Fehler zu identifizieren, indem Sie den Gradienten mit einem numerischen Ansatz approximieren. Wenn er den berechneten Gradienten nahe kommt, wurde das Backpropagation korrekt implementiert. Um eine Gradienten\u00fcberpr\u00fcfung zu erstellen, konsultieren Sie diese wunderbaren Ressourcen aus CS231 <noindex><a rel=\"nofollow\" href=\"http:\/\/cs231n.github.io\/neural-networks-3\/#gradcheck\">hier<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"http:\/\/cs231n.github.io\/optimization-1\/#gradcompute\">hier<\/a><\/noindex>, sowie das <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=P6EtCVrvYPU\">Tutorial<\/a><\/noindex> von Andrew Ng zu diesem Thema.<\/p>\n<p><noindex>Faizan Shaikh<\/noindex> weist auf drei Hauptmethoden zur Visualisierung von neuronalen Netzwerken hin:<\/p>\n<ul>\n<li>Vorab-Methoden \u2013 einfache Methoden, die uns die allgemeine Struktur des trainierten Modells zeigen. Dazu geh\u00f6rt die Ausgabe von Formen oder Filtern einzelner Schichten des neuronalen Netzwerks und der Parameter in jeder Schicht.<\/li>\n<li> Aktivierungsbasierte Methoden. Hier entschl\u00fcsseln wir die Aktivierungen einzelner Neuronen oder Gruppen von Neuronen, um ihre Funktionen zu verstehen.<\/li>\n<li> Gradientenbasierte Methoden. Diese Methoden tendieren dazu, mit Gradienten zu arbeiten, die aus dem Vorw\u00e4rts- und R\u00fcckw\u00e4rts-Durchlauf beim Training des Modells generiert werden (einschlie\u00dflich Bedeutungskarten und Aktivierungskarten der Klasse).<\/li>\n<\/ul>\n<p>\nEs gibt mehrere n\u00fctzliche Tools zur Visualisierung von Aktivierungen und Verbindungen einzelner Schichten, wie zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/conx.readthedocs.io\/en\/latest\/Getting%20Started%20with%20conx.html#What-is-ConX?\">ConX<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/www.tensorflow.org\/guide\/tensorboard_histograms\">Tensorboard<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir arbeiten mit neuronalen Netzwerken: Checkliste zur Fehlersuche\" src=\"\/wp-content\/uploads\/2019\/03\/56e7e88983d6772ef482bc8396dd52a2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h3>Parameterdiagnose<\/h3>\n<p>\nNeuronale Netzwerke haben eine Vielzahl von Parametern, die miteinander interagieren, was die Optimierung erschwert. Tats\u00e4chlich ist dieser Abschnitt Gegenstand aktiver Forschung von Fachleuten, daher sollten die folgenden Vorschl\u00e4ge nur als Ratschl\u00e4ge und Ausgangspunkte betrachtet werden.<\/p>\n<p><b>Batch-Gr\u00f6\u00dfe<\/b> \u2013 die Batch-Gr\u00f6\u00dfe sollte gro\u00df genug sein, um genaue Sch\u00e4tzungen des Fehlergradienten zu erhalten, aber klein genug, damit der stochastische Gradientenabstieg (SGD) Ihr Netzwerk ordnen kann. Kleine Batch-Gr\u00f6\u00dfen f\u00fchren zu schnellerer Konvergenz aufgrund von Rauschen w\u00e4hrend des Trainings und damit zu Optimierungsschwierigkeiten. Dies wird ausf\u00fchrlicher beschrieben <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1609.04836\">hier<\/a><\/noindex>.<\/p>\n<p><b>Lernrate<\/b> \u2013 eine zu niedrige Lernrate f\u00fchrt zu langsamer Konvergenz oder dem Risiko, in lokalen Minima stecken zu bleiben. Gleichzeitig kann eine hohe Lernrate zu Divergenz der Optimierung f\u00fchren, da Sie riskieren, \u00fcber einen steilen, aber schmalen Teil der Verlustfunktion 'hinwegzuspringen'. Versuchen Sie, die Lernrate w\u00e4hrend des Trainings des neuronalen Netzwerks zu planen. Im Kurs CS231n <noindex><a rel=\"nofollow\" href=\"http:\/\/cs231n.github.io\/neural-networks-3\/\">Es gibt einen umfangreichen Abschnitt, der sich mit diesem Problem besch\u00e4ftigt<\/a><\/noindex>.<\/p>\n<p><b>Gradientenbeschneidung<\/b>\u200a \u2013 Beschneidung der Gradientenparameter w\u00e4hrend der R\u00fcckw\u00e4rtsausbreitung basierend auf dem maximalen Wert oder der Grenznorm. N\u00fctzlich zur L\u00f6sung von Problemen mit explosiven Gradienten, die Sie im dritten Punkt antreffen k\u00f6nnen.<\/p>\n<p><b>Batch-Normalisierung<\/b> \u2013 wird verwendet, um die Eingabedaten jeder Schicht zu normalisieren, was hilft, das Problem der internen Kovariatenverschiebung zu l\u00f6sen. Wenn Sie Dropout und Batch Normalization zusammen verwenden, <noindex><a rel=\"nofollow\" href=\"https:\/\/towardsdatascience.com\/pitfalls-of-batch-norm-in-tensorflow-and-sanity-checks-for-training-networks-e86c207548c8\">lesen Sie diesen Artikel<\/a><\/noindex>.<\/p>\n<p><b>Stochastischer Gradientenabstieg (SGD)<\/b> \u2013 es gibt mehrere Varianten von SGD, die Momentum, adaptive Lernraten und die Nesterov-Methode nutzen. Dabei hat keine von ihnen einen klaren Vorteil hinsichtlich der Effizienz des Lernens oder der Verallgemeinerung (<noindex><a rel=\"nofollow\" href=\"http:\/\/ruder.io\/optimizing-gradient-descent\/\">Details hier<\/a><\/noindex>).<\/p>\n<p><b>Regulierung<\/b> \u2013 ist entscheidend f\u00fcr den Aufbau eines generalisierbaren Modells, da sie eine Strafe f\u00fcr die Komplexit\u00e4t des Modells oder extreme Parameterwerte hinzuf\u00fcgt. Dies ist ein Weg, die Varianz des Modells zu reduzieren, ohne signifikant dessen Verzerrung zu erh\u00f6hen. Mehr <noindex><a rel=\"nofollow\" href=\"http:\/\/cs231n.github.io\/neural-networks-3\/#ratio\">Informationen \u2013 hier<\/a><\/noindex>.<\/p>\n<p>Um alles selbst zu bewerten, ist es notwendig, die Regularisierung auszuschalten und den Verlustgradienten selbst zu \u00fcberpr\u00fcfen.<\/p>\n<p><b>Dropout <\/b>\u2013 ist eine weitere Methode, um Ihr Netzwerk zu strukturieren, um \u00dcberanpassung zu verhindern. W\u00e4hrend des Trainings wird das Dropout nur durch die Beibehaltung der Aktivit\u00e4t eines Neurons mit einer gewissen Wahrscheinlichkeit p (Hyperparameter) oder durch Setzen auf null im anderen Fall durchgef\u00fchrt. Dadurch muss das Netzwerk ein anderes Teilset von Parametern f\u00fcr jede Trainingsbatch verwenden, was die Ver\u00e4nderungen bestimmter Parameter reduziert, die dominant werden.<\/p>\n<p>Wichtig: Wenn Sie sowohl Dropout als auch Batch-Normalisierung verwenden, seien Sie vorsichtig mit der Reihenfolge dieser Vorg\u00e4nge oder sogar mit deren gleichzeitiger Verwendung. All dies wird noch aktiv diskutiert und erg\u00e4nzt. Hier sind zwei wichtige Diskussionen zu diesem Thema <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/39691902\/ordering-of-batch-normalization-and-dropout\">auf Stackoverflow<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1801.05134\">Arxiv<\/a><\/noindex>.<\/p>\n<h3>Arbeitskontrolle<\/h3>\n<p>\nEs geht um die Dokumentation von Arbeitsprozessen und Experimenten. Wenn man nichts dokumentiert, kann man vergessen, welche Lernrate oder Gewichtung der Klassen verwendet wird. Durch die \u00dcberwachung ist es problemlos m\u00f6glich, fr\u00fchere Experimente einzusehen und nachzuvollziehen. Dadurch kann die Anzahl der sich wiederholenden Experimente verringert werden.<\/p>\n<p>Allerdings kann die manuelle Dokumentation bei einem gro\u00dfen Arbeitsaufwand zu einer Herausforderung werden. Hier kommen Werkzeuge wie Comet.ml ins Spiel, die dabei helfen, Datens\u00e4tze, Code\u00e4nderungen, die Historie von Experimenten und Produktionsmodelle automatisch zu protokollieren, einschlie\u00dflich wichtiger Informationen \u00fcber Ihr Modell (Hyperparameter, Leistungskennzahlen und Umgebungsinformationen).<\/p>\n<p>Neurale Netzwerke k\u00f6nnen sehr empfindlich auf kleine \u00c4nderungen reagieren, was zu einem R\u00fcckgang der Modellleistung f\u00fchren kann. Das Tracking und die Dokumentation der Arbeit sind der erste Schritt, den Sie unternehmen sollten, um die Umgebung und Modellierung zu standardisieren.<\/p>\n<p><img decoding=\"async\" alt=\"Wir arbeiten mit neuronalen Netzwerken: Checkliste zur Fehlersuche\" src=\"\/wp-content\/uploads\/2019\/03\/37b3e4ef97ea39a3d28ffca5c1dbf1e5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nIch hoffe, dass dieser Post ein Ausgangspunkt sein kann, von dem aus Sie das Debugging Ihres neuronalen Netzwerks beginnen.<\/p>\n<blockquote><p><b>Skillbox empfiehlt:<\/b><\/p>\n<ul>\n<li>Zweij\u00e4hriger praktischer Kurs <noindex><a rel=\"nofollow\" href=\"https:\/\/iamwebdev.skillbox.ru\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=WEBDEVPRO&amp;utm_content=articles&amp;utm_term=neuronet\">\u201eIch bin ein Webentwickler PRO\u201c<\/a><\/noindex>.<\/li>\n<li>Online-Kurs <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/c-sharp\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=CSHDEV&amp;utm_content=articles&amp;utm_term=neuronet\">\u201eC#-Entwickler von Grund auf\u201c<\/a><\/noindex>.<\/li>\n<li>Praktischer Jahreskurs <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/php\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=PHPDEV&amp;utm_content=articles&amp;utm_term=neuronet\">\u201ePHP-Entwickler von 0 bis PRO\u201c<\/a><\/noindex>.\n<\/li>\n<\/ul>\n<\/blockquote>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillbox\/blog\/444684\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u043c. \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0438 \u043b\u0438\u043a\u0432\u0438\u0434\u0430\u0446\u0438\u044f \u0431\u0430\u0433\u043e\u0432 \u0432 \u043d\u0435\u043c \u2014 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0435\u043c\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u0414\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0435 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u0441 \u043f\u0440\u044f\u043c\u043e\u0439 \u0441\u0432\u044f\u0437\u044c\u044e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0435\u0441\u043e\u0432, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0438. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432\u0430\u0448\u0438\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439. Skillbox \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442: [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-30028","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/rabotaem-s-nejrosetyami-chek-list-dlya-otladki\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u043c\u0438: \u0447\u0435\u043a-\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/rabotaem-s-nejrosetyami-chek-list-dlya-otladki\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:33:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:33:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wir arbeiten mit neuronalen Netzwerken: Checkliste f\u00fcr das Debugging | ProHoster","description":"Der Code f\u00fcr Softwareprodukte zur maschinellen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/rabotaem-s-nejrosetyami-chek-list-dlya-otladki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u043c\u0438: \u0447\u0435\u043a-\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 | ProHoster","og:description":"\u041a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e.","og:url":"https:\/\/prohoster.info\/de\/blog\/rabotaem-s-nejrosetyami-chek-list-dlya-otladki","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:33:18+00:00","article:modified_time":"2019-10-31T18:33:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30028","title":null,"description":null,"keywords":null,"keyphrases":null,"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":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"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":null,"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":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-20 23:28:27","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:43:15","updated":"2026-01-20 23:28:27","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=30028"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30028\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=30028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=30028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=30028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}