Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)
45 λεπτά πριν, kaydi2 είπε

Ο κώδικας που "χτυπάει" είναι μέσα στο μοντέλο σου και όχι αυτός που παρέθεσες. 

Επίσης, το accuracy είναι η πλέον λάθος μετρική για το task που προσπαθείς να κάνεις. 

Τέλος, έχεις λάθη. Δεν γίνεται να χρησιμοποιείς την XEntropy με ενσωματωμένη την s_max και να προσπαθείς να μετρήσεις accuracy στα linear outputs σου. Εάν δεν έχεις linear outputs, τότε έχεις λάθος στον υπολογισμό του κόστους και, honestly, καλύτερα (από numerical stability perspective) να έχεις linear outputs εδώ 

Επίσης, υπάρχει λόγος που κάνεις monitor το sum over minibatches/epoch; Τι πληροφορία θα σου δώσει και πώς θα είναι informative;

Γενικά, αυτό που προσπαθείς να κάνεις δεν γίνεται αντιγράφοντας κώδικα. Θέλει διάβασμα. Με μία απλή ματιά στον κώδικά σου, βρήκα βασικότατα λάθη, τα οποία δεν είναι bugs. Θα τρέξει ο κώδικας. Αυτά που θα βγάλει θα είναι crap. 

Για όνομα του θεού, ένα απλό convolutional είναι που δουλεύει με ~95% accuracy στο mnist dataset. Το τρέχω απλα για να βεβαιωθώ ότι τρέχει σαν μοντέλο/προγραμμα.

Γιατι το accuracy δεν είναι σωστή μετρική; Δεν είναι δα οικονομικά όπου μας ενδιαφέρει το sharpe ratio. Ειλικρινά ρωτάω.

Αν έχεις κάποια καλύτερη πρόταση για τον κώδικα, σαφώς να την ακούσω. Αν έχεις όρεξη σε πμ, σου στέλνω όλο το μοντέλο. Απλώς εδώ από όσα γνωρίζω, και βλέποντας ότι τρέχει ο ίδιος (φαινομενικά) κώδικας σε άλλο μηχάνημα, δεν είναι ο κώδικας το θέμα.

Είμαι νέοψ στην Python, αλλά όχι στα ΑΝΝ.

Επεξ/σία από Sheogorath
Δημοσ. (επεξεργασμένο)

Sorry bro, I don't do PMs. 

Το ότι "τρέχει" και σου δίνει 95% acc, δεν λέει τίποτα. Αυτό που βλέπω είναι λάθος. Ό,τι και να δίνει. 

Εάν έχεις δύο κλάσεις και έχεις acc_1 = .3, acc_2 = .9, το acc που θα δεις θα είναι .6. Above luck, αλλά μούφα above luck. Το μοντέλο σου δουλεύει εντελώς λάθος για την κλάση 1. Δηλαδή, το μοντέλο σου (που θέλεις να δουλεύει για δυο κλάσεις) είναι πέρα ως πέρα λάθος. Βέβαια, σε 2 κλάσεις πάει και έρχεται αλλά εάν κολλήσεις σε αυτό και δεν καταλάβεις το τι γίνεται τότε είναι δικό σου θέμα  

Θα μπορούσα να μπω και σε πιο πολλές λεπτομέρειες σχετικά με την καθαυτή μέθοδο, αλλά το "Για όνομα του θεού, ένα απλό convolutional είναι" σε συνδυασμό με τα "δεν είναι δα οικονομικά" και "είμαι νέοψ στην Python αλλά όχι στα ΑΝΝ" με αποθάρρυναν (για την ακρίβεια, ούτε το γιατί το acc είναι λάθος στην συγκεκριμένη περίπτωση ήθελα να εξηγήσω). Just για το story της υπόθεσης, το τι statistical learning "κάνει" ένα CNN, είναι αντικείμενο ακόμα για κάποια papers. Και μάντεψε σε τι dataset το δείχνουν (ναι, στο MNIST). 

Καλή συνέχεια! Αφού δεν είσαι "νέοψ", ξέρεις τι κάνεις. 

Επεξ/σία από kaydi2
Δημοσ. (επεξεργασμένο)
17 λεπτά πριν, kaydi2 είπε

Sorry bro, I don't do PMs. 

Το ότι "τρέχει" και σου δίνει 95% acc, δεν λέει τίποτα. Αυτό που βλέπω είναι λάθος. Ό,τι και να δίνει. 

Εάν έχεις δύο κλάσεις και έχεις acc_1 = .3, acc_2 = .9, το acc που θα δεις θα είναι .6. Above luck, αλλά μούφα above luck. Το μοντέλο σου δουλεύει εντελώς λάθος για την κλάση 1. Δηλαδή, το μοντέλο σου (που θέλεις να δουλεύει για δυο κλάσεις) είναι πέρα ως πέρα λάθος. Βέβαια, σε 2 κλάσεις πάει και έρχεται αλλά εάν κολλήσεις σε αυτό και δεν καταλάβεις το τι γίνεται τότε είναι δικό σου θέμα  

Θα μπορούσα να μπω και σε πιο πολλές λεπτομέρειες σχετικά με την καθαυτή μέθοδο, αλλά το "Για όνομα του θεού, ένα απλό convolutional είναι" σε συνδυασμό με τα "δεν είναι δα οικονομικά" και "είμαι νέοψ στην Python αλλά όχι στα ΑΝΝ" με αποθάρρυναν (για την ακρίβεια, ούτε το γιατί το acc είναι λάθος στην συγκεκριμένη περίπτωση ήθελα να εξηγήσω). 

Καλή συνέχεια! Αφού δεν είσαι "νέοψ", ξέρεις τι κάνεις. 

Αν θες να βοηθήσεις, μπορείς να σχολιάσεις, και να βελτιώσεις. Αν θες να σχολιάσεις απλά. Δεν βοηθάς.
Κατάλαβέ το.

Ακόμα και με το παράδειγμα σου, που βγάζει το ΜΟ των δύο, προφανώς, όταν μιλάμε για ~0.95 ακόμα και 1 να είναι το ένα, δεν θα είναι κάτω απο 0.9 το άλλο. Δεν βλέπω το πρόβλημα.

Επεξ/σία από Sheogorath
Δημοσ. (επεξεργασμένο)
1 ώρα πριν, kaydi2 είπε

Έχεις δίκιο. Συγνώμη αλλά δεν ήξερα. Τώρα έμαθα όμως. 

Είδα απο εδώ https://www.insomnia.gr/profile/501846-kaydi/, γνωρίζεις απο Python και γενικά ΝΝ. Αν έχεις όρεξη, πες μου.

Είμαι ανοιχτός σε κριτική σαφώς, αλλά κριτική να βγάζει αποτέλεσμα. Το να λες "ξέρω τι κάνεις μλκίες αλλά δεν γουστάρω να σου πω" δεν βοηθάει κανέναν.

10 ώρες πριν, kaydi2 είπε

Δεν χρησιμοποιώ TF, αλλά γιατί κάνεις manual apply το affine transform σου; Δεν έχει κάποιον layer η TF;

Επίσης, το KeyError είναι αυτό που λέει. Key error. Δεν υπάρχει το key στο dict σου. 

Επίσης, chances are ότι δεν κάνεις τίποτα τόσο critical για να μην δώσεις τον κώδικά σου. Εσύ ξέρεις, αλλά εάν κάνεις ένα c/p τον κώδικα τότε ενδέχεται να πάρεις πιο γρήγορα σωστή βοήθεια. 

BTW ευχαριστώ, είχε ξεφύγει στην αντιγραφή απο το λάπτοπ στο σταθερό. Το έφτιαξα. Όπως προείπα είμαι νέοψ με την Python, και μετά απο τόσες μέρες/συνολικά ώρες με ότι να 'ναι error messages, μου ξέφυγε.

 

Για όποιον τώρα ενδιαφέρεται. Όποιος και να είναι. Βγάζει ότι η εντολή είναι παροχημένη κτλ. Κανένα θέμα έως τώρα.

______________________________________________________________

E:\PROGRAMMS\Python\python.exe C:/Users/Sheo/PycharmProjects/TF_RNN/RNN.py
Extracting /tmp/data/train-images-idx3-ubyte.gz
Extracting /tmp/data/train-labels-idx1-ubyte.gz
Extracting /tmp/data/t10k-images-idx3-ubyte.gz
Extracting /tmp/data/t10k-labels-idx1-ubyte.gz
WARNING:tensorflow:From C:/Users/Sheo/PycharmProjects/TF_RNN/RNN.py:49: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.
Instructions for updating:

Future major versions of TensorFlow will allow gradients to flow
into the labels input on backprop by default.

See tf.nn.softmax_cross_entropy_with_logits_v2.

_______________________________________________________________

Είναι απίστευτα αργός, και προφανώς όχι GPU accelerated. Καμία ιδέα γιατί; Απο το παραπάνω δεν φαίνεται να βγάζει error για Gpu κτλ. 4 threads τα μασουλάει κανονικά πάντως.

Και... βρήκα και κάτι ππριές που είχα κάνει στον κώδικα.

Λοιπόν, δεν το περίμενα, αλλά kaydi με τσάτισες τόσο που κάθησα και το ξαναείδα. Άκρη με το pc δεν βγάζω, βγάζω με τον κώδικα όμως. Thanks. :)

Επεξ/σία από Sheogorath
Δημοσ. (επεξεργασμένο)

Λοιπόν, update, για τους άυπνους.

Αυτά τα πακέτα έχω τώρα. Αναγκάστηκα να κατεβάσω και να βάλω χεριοκίνητα την έκδοση tf_1.5 καθώς ήταν η μέγιστη που υποστήριζε η cpu μου. Μπορώ να αναγκάσω με το pip install tensorflow-gpu, να ψάξει για την 1.5 έκδοση;

tf_interpreters.jpg

Λοιπόν, για αν μην χαλάσω το κανονικό που "δουλεύει", τρομάρα του, το δοκίμασα στο venv.

Βλέπει κανονικά την Titan, προφανώς με tensorflow-gpu 1.5 γιατί το 1.6 δεν... Αλλά μόλις πάτησα Enter στο python μπλα μπλα.py μαύρισε η οθόνη, και μου πέταξε αυτά τα error.

Σύμφωνα με την εικόνα, χτυπάει στο gpu initialization με unkonwn error. Σας έχει ξανατύχει;

gpu-error.jpg

Επεξ/σία από Sheogorath
Δημοσ.

@Sheogorath

1. Ξεκίνα να χρησιμοποιείς version control! Ακόμη περισσότερο μιας και δουλεύεις σε περισσότερα τους ενός PCs. Σκέψου ότι όλο το χρόνο που έχασες με το KeyError θα τον είχες γλυτώσει. Kαι δεν είναι καν αυτό το πραγματικό selling point.

2. Για να εγκαταστήσεις μια συγκεκριμένη έκδοση κάποιου προγράμματος χρησιμοποιείς:

pip install <package_name>==<version> 
  
Π.χ.
  
pip install tensorflow==1.5.1

Δώσε και ένα

pip --help 

3. Το warning που παίρνεις είναι απλά ένα deprecation notice για το API. Λογικά δεν σχετίζεται με το πρόβλημα σου ούτε πρέπει να σε ανησυχεί.

4. Το Virtual Machine θα έχει σίγουρα σημαντικό performance impact εκτός και αν κάνεις GPU passthrough το οποίο δεν είναι και τόσο trivial. Έχω την εντύπωση ότι το VMware είναι λίγο καλύτερο από το Virtualbox για GPU passthrough.

5. FYI: H python είναι cross platform, αλλά IMHO τα *nix είναι εν γένει πιο φιλικά για python development (χωρίς αυτό να σημαίνει ότι δεν μπορείς να δουλέψεις και σε windows). Δεν σου λέω να αλλάξεις λειτουργικό, αλλά keep it mind.

  • Thanks 1
Δημοσ.

Ναι, το key error ήταν ηλιθιο, το παραδέχομαι. Ένα κεφαλαίο που πέρασα μικρο όταν το ξανάγραφα, και κάτι λάθη γιατί ειδα παλιά έκδοση του κώδικα.

Το depreciation το έχω πετύχει και στο matlab, πέρα από την "γκρίνια" του, δεν πρέπει να επηρεάζει πουθενά.

Το πρόβλημα είναι ότι δουλεύω για την ώρα σε τόσο παλιό σταθερό που έπρεπε να μαγειρέψω τις εκδόσεις για να δουλεύει κάποια. Πχ αυτό με την tensorflow >1.5 για μόνο με AVX εντολές το πέτυχα τυχαία σε ένα φόρουμ...

Οπως και να έχει, ευχαριστώ για το heads up, σίγουρα θα τα κοιτάξω :)

Δημοσ. (επεξεργασμένο)
Αναφορά σε κείμενο

που έπρεπε να μαγειρέψω τις εκδόσεις για να δουλεύει κάποια

Τουλάχιστον σύμφωνα με την προσωπική μου εμπειρία, στο scientific computing δεν το λες και ανήκουστο. Γενικά ότι έχει να κάνει με compiled libraries κτλ είναι πάντα πιο ευαίσθητο. Και να ξέρεις ότι η κατάσταση έχει βελτιωθεί δραματικά από τότε που βγήκαν τα wheels. Παλιά ακόμα και το να βάλεις numpy/scipy/matplotlib συνήθως ήθελε χεράκι

Αν συνεχίσεις να έχεις να κάνεις με βιβλιοθήκες που δεν παίζουν, με missing *.dll κτλ ίσως αξίζει να κοιτάξεις το conda το οποίο προσπαθεί να λύσει τέτοιου είδους προβλήματα (disclaimer: δεν έχω προσωπική εμπειρία).
 

Αναφορά σε κείμενο

 

όταν το ξανάγραφα

[...]

παλιά έκδοση του κώδικα.

 

Version Control... !!! :P :D

Αλήθεια man, μην το αμελείς. ναι πριν, ξεκινήσεις δεν καταλαβαίνεις την χρησιμότητά του αλλά ειλικρινά είναι το πιο απαραίτητο όλων των προγραμματιστικών εργαλείων

Επεξ/σία από pmav99
  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...