CNN lernt nicht (PyTorch)?
Hallo,
das neuronale Netz, was ist zum Üben geschrieben habe, funktioniert irgendwie nicht. Ich probiere das nun seit gestern Abend zu lösen. Kann mir bitte jemand erklären, wieso sich die Loss und die average loss sich nicht ändern? CUDA habe ich ausgeschaltet, weil es damit ständig abgestürzt ist.
Code: https://pastebin.com/VrSaySWM
DataSet: https://www.kaggle.com/ciplab/real-and-fake-face-detection
2 Antworten
Ohne Cuda ist es vielleicht zu langsam
Bist du dir sicher, dass 20 Epochen in dem Fall ausreichen um eine ernsthafte Verbesserung zu beobachten? Mit CPU dauert sowas ewig
Okay. Das wusste ich nicht. Die Werte waren nur alle bei 100. 000000,75.000000,50.000000 oder 0.000000 Und vielleicht noch ein paar anderen Zahlen wie 25.000000. Das hat mich auch gewundert ist das normal?
Nach wie vielen Epochen ändern sich die Werte den so ungefähr bei CPU?
Und ist es normal, dass das mit Gpu so oft abstürzt? Oder denkst du, dass da ein Fehler sein könnte?
Kommt natürlich auf die Aufgabe an, aber eigentlich kann man das mit einer CPU komplett vergessen solange es nicht transfer learning ist, mit einem vortrainierten modell. Warum sie so oft abstürzt weiß ich nicht. Hast du die richtige CUDA version installiert? Kommt irgendein fehler?
Segmentation fault (core dumped).
Selten auch vorher CUDA out of memory. Tried to allocate..... (zu wenig dedizierter Speicher). Ich hätte generell 2 GiB.
Hm, weiß ich leider nicht. Ich installiere Cuda mal neu und probiere es dann nochmal
Die Meldung mit dem segmentation fault aber immer, wenn die Daten getestet werden.
2 GB VRAM ist für Machine Learning deutlich zu wenig, 8 ist das Minimum und damit kommt man häufig nicht hin. Probiers mal auf Google Colab, da kriegst du kostenlos GPUs mit 14 bis 16 GB VRAM
Okay, das mit Google colab funktioniert super vielen dank :D
Hi, ich habe nochmal eine Frage: Ist es normal dass da überall 0.000000 als Loss steht? Ich habe beim Starten nicht hingeschaut, aber in der 9. Bis 20. Epoche war das so.. Bei dem gleichen Script, hab nur die Batchsize hochgestellt und ein bisschen was an dem Datei auslesen und drn Pfaden verändert.
Das weiß ich nicht, schau mal dort nach wo der code her ist, z. b. in den github issues
Also du benutzt ein relativ dickes netzwerk, ohne CUDA kannste da eigentlich direkt aufgeben. CPUs kann man am anfang benutzen, für ganz kleine projekte. Aber sobald dein Netzwerk grösser wird, oder Conv2D Netze benutzt, brauchst du ne grafikkarte
Danke. Mit was für Projekten fängt man denn normal an? Das wäre jetzt mein erstes neuronales Netz..
Uff dann wäre was mit Conv Layern doch bisschen krass.
Es gibt haufenweise beginner projekte, guck auf youtube nach "Machine Learning beginner projects"
oh, ich glaube es funktioniert gerade sogar halbwegs.. Mal schauen wie das in ein paar Stunden aussieht :D Aber das schaue ich mir auf jeden Fall mal an, vielen Dank :D
Mit cuda ist es immer mitten in der ersten oder zweiten Epoche abgestürzt. Nun war es in der 20. Epoche