Chat:Fr/2021-02-08
Stilgart: leojean890: une forêt de if de 130 lignes
Stilgart: Bob: j'en fais quoi de ton clash... je le refuse parce qu'il est trop facile, où je le valide parce que les gens qui font du clash seront incapable de le résoudre ? :p
Stilgart: (sinon, je le mettrais que en shortest)
Stilgart: bon, je vois pas mieux que 24 char en bash
ShawnHeyli: prout
Galitan-dev: \o merci Zorg1
Stilgart: o/ Galitan-dev
Space_890: Salut
Bon[]Crayon: Salut, salut :grinning:
Bon[]Crayon: AUTOMATON2000 SALUT LA TORTUE DU NET :turtle:
Automaton2000: bien sûr que si tu fais la somme des deux
Bon[]Crayon: AUTOMATON2000+AUTOMATONNN=MEGAAUTOMATON
AutomatonNN: et AutomatonNN ?
Automaton2000: y a une erreur de code
Bon[]Crayon: AUTOMATON2000 Abusing the System
Automaton2000: tu vois un coup gagnant
Bon[]Crayon: AutomatonNN ? Tu es toi !
AutomatonNN: si t'as pas de chance de contrer toi tu peux pas te dire que tu as un truc que tu as des modifs par
Bon[]Crayon: AutomatonNN Ta logique m'échappe.
AutomatonNN: oui
Alshock: coucou
Bon[]Crayon: o/
philRG: le awk pas mal pour faire rapidement de l'extraction de logs système, en utilisant des délimiteurs
philRG: o/
philRG: solution de monitoring peu coûteuse
philRG: bon je pense que je vais pas abuser de mon pouvoir de contributeur sur celui-ci :o)
philRG: https://www.codingame.com/contribute/view/5800a36c655f42f53885c128d09eaed15f7f
philRG: s/contributeur/validateur/
Zorg1: bof il est en wip il le fait tourner juste pour troller/narguer
Zorg1: vu qu'il avait fait 300 puzzles dans tous les langages dispos
Zorg1: Sinon AutomatonNN & Automaton2000 la forme les bots ?
Automaton2000: oui mais on te demande de faire une partie de ton code
AutomatonNN: genre tu t'en fous de la conversation du contest pour pouvoir te proposer de tout cas
Zorg1: bah oui je m'en fous AutomatonNN y a pas de contest en cours ;-)
AutomatonNN: oui je suis tout seul sur le truc de ce que je peux faire mais il a pas l'air de pas tortuer des tru
Zorg1: "tortuer" joli AutomatonNN :D
AutomatonNN: bas technique de contest de contest ou t'es mourir ?
Alshock: wouah il est devenu gothique AutomatonNN ? Qu'est-ce que t'as fait à ton petit frère Automaton2000
AutomatonNN: oui
Automaton2000: si ce n'est pas plus rapide
Alshock: Automaton2000 alors quoi ?
Automaton2000: le truc de base pour que ça passe pas
Stilgart: EAPS
Stilgart: Automaton2000: ça s'appelle une tortue ton truc
Automaton2000: je dis juste que c'est pas parce qu'on ne va pas durer
Stilgart: Automaton2000: :(
Automaton2000: il y a que des trolls sur ce chat
Stilgart: ha bah merci
[CG]Thibaud: ça fait toujours plaisir
Stilgart: pas comment les repops de contribs arrivées à échéances et avec 1 refus et un score de -9
Stilgart: au final, elle sert vraiment plus à rien la limite des 30j
Stilgart: (à part si opérer une rotation dans la liste des contribs est considéré comme une fonctionnalité)
[CG]Thibaud: on va dire qu'elle permet d'évacuer quelques contribs si leurs auteurs sont définitevement partis
Alshock: autant le problème est trivial à identifier, autant j'ai pas beaucoup de propals à lui faire
Stilgart: je suis un peu à court de propal aussi
Alshock: comme des bambas tristes ?
Stilgart: rien n'empêche la légion de smurf pour contourner les limites
Alshock: faudra vraiment que quelqu'un m'explique pourquoi les alts se sont transformés en smurfs, encore un effet de James Cameron ?
**Stilgart rate le rapport
Stilgart: ou alors c'est une réf torude à South Park
Stilgart: Automaton2000: n'apprends pas de mes fautes de frappe ste plait !
Automaton2000: c'est juste que comme je suis le seul à avoir un bot qui a fait une erreur
Kurosaif: salut je me posais une question existe t il une ponction python pour trier une liste par rapport a 0?
Zorg1: tu veux ponctionner python ? :scream:
Zorg1: (oui je sais c'était facile)
Natior12: sorted(l, key=lambda x: x[0])
Natior12: tu mets ta liste en premier argument
Natior12: et à la place de x[0] tu mets 0 ça devrait marcher
Kurosaif: je vais essayer merci
Natior12: faut que t'enregistre ça dans une variable
Natior12: et sinon avec sort()
Natior12: ça modifie la liste originale
POLOB: Hello tt le monde
POLOB: Automaton2000 et AutomatonNN, ça va ?
AutomatonNN: -_-
Automaton2000: si je comprends bien que c'est ça :
philRG: trier une liste % à zéro!!!
philRG: sorted(liste) et puis c tout
philRG: ou liste.sort() ça la modifie
Kurosaif: en fait c est pour trier avec des elements positifs et negatifs
Kurosaif: [1,-2,-6,8,10,..] par exemple
philRG: ben ce sont des entiers relatifs, la question est pas claire
philRG: la méthode sort() trie dans l'ordre croissant, et reverse() décroissant c tout
BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !
AutomatonNN: ok
Automaton2000: du coup vous avez pas le temps de mettre le nom de la boite
Kurosaif: et ma question etait s'il existait une fonction pour trier par rapport a 0?
BlaiseEbuth: Trier par rapport à zero ça veut rien dire.
philRG: je n'osais pas le dire
philRG: la question est peut-être mal formulée
philRG: ou le besoin
Kurosaif: disons alors les trier selon leur norme par rapport a 0
BlaiseEbuth: Meh...
philRG: ah c déjà mieux
BlaiseEbuth: Tu as quoi et tu veux obtenir quoi ?
philRG: sorted(l, key=lambda x:abs(x))
Kurosaif: j'ai des entiers relatifs et je veux trouver celui qui est le plus proche de 0
philRG: suffisait de demander
philRG: l Out[79]: [1, 2, -1, 4] sorted(l, key=lambda x:abs(x)) Out[80]: [1, -1, 2, 4]
BlaiseEbuth: A questions claires...
philRG: :thumbsup:
philRG: c pour le puzzle Températures?
philRG: ça caille hihi bon je dois sortir à la poste, bon puzzle!
POLOB: je suis toujours épaté par la concision que permet python...
Kurosaif: merci encore pour l aide
BlaiseEbuth: Plus con que cision mais ouai...
POLOB: :D
philRG: je ferai bien du C++ mais ma souris arrive pas bien à scroller, faut que j'en change
BlaiseEbuth: Le mec qui fait du python pour pas avoir besoin de scroller... :expressionless:
BlaiseEbuth: Lel, le forum considère www.codingame.com <http://www.codingame.com> comme une source potentielle de spam :upside_down:
POLOB: Ils ont peur qu'Automaton2000 et AutomatonNN se mettent à poster...
AutomatonNN: ou auto de partie de la compatibilite
Automaton2000: la taille de la liste de tous les temps
Alshock: BlaiseEbuth je trouve que l'argument du scroll est étonnamment valide
Alshock: t'en penses quoi toi Automaton2000 ?
Automaton2000: faut que tu lui donnes
Alshock: non ! c'est mon mien !
BlaiseEbuth: Je préfères scroller dans un code propre que d'avoir un concentré de merde statique sur mon écran.
BlaiseEbuth: Mais chacun ses goûts... :grin:
Bob: amis du gout o/
BlaiseEbuth: \o
philRG: BlaiseEbuth tout est une question de maîtrise
BlaiseEbuth: Les fameux maîtres du python... :3
philRG: certains langages sont plus permissifs que d'autres c sûr
philRG: déjà si j'arrive à maîtriser le français c déjà bien :)
philRG: c mon brother qui m'a incité à m'y mettre sur python, bah çà ou autre chose comme disait ma collègue :-D
philRG: vu mon niveau en algo, sur les contessts je prends le langage où je sois le plus fluent
philRG: que je pratique le plus
philRG: après est-ce que je pourrais coder en Haskell ou OCAML? Faudrait que j'essaye en fait
Bob: la question c'est pas tant de vouloir que d'en avoir envie :p
BlaiseEbuth: *pouvoir ?
Bob: ouais
Bob: ca me reussit bien d'etre en RTT dis donc
Bob: par exemple je "peux" coder en VB.Net ou Pascal
Bob: mais a ce stade je crois que tout est dit :)
spectrosdennoce: une fois que on a la logique de developpement tu peut tout coder en vrai
BlaiseEbuth: Non
spectrosdennoce: mais sa ce fait uniquement en traduisant du code a un autre ou en developpant dans un peux tout les languages en meme temps
spectrosdennoce: pas tout coder pardons coder dans un peut tout les language
Bob: traduire d'un langage a un autre, c'est chiant dans le meilleur des cas et hasardeux dans la plupart
BlaiseEbuth: non quand même
BlaiseEbuth: Essayes de passer sur du fonctionnel sit t'as toujours fait de l'impératif
Bob: crois-en quelqu'un qui a eu un T-shirt en recodant son CSB C++ d'abord en Clojure puis en VB.Net
Bob: je plussoie BlaiseEbuth
Bob: dans mon projet actuel on a un gros seau de JS qui a ete ecrit par des gens qui arrivaient droit du C++
Bob: eh ben c'est carrement moche
BlaiseEbuth: Là j'ai envie de dire que du beau js faut le trouver...
Bob: oui mais c'est ton cote troll :)
BlaiseEbuth: Un peu... Mais pas que ^^
spectrosdennoce: oui ba sa ce trouve quannd tu sait chercher 2 seconde tu fait quelque parralelle entre ce que tu connais deja et ce que tu doit chercher et c'est bon
BlaiseEbuth: Non
spectrosdennoce: je parle pas de js
BlaiseEbuth: Parceque la manière de réfléchir n'est pas la même
spectrosdennoce: oui et donc ?
philRG: c sûr retranscrire un code d'un langage vers un autre n'est pas l'idée
BlaiseEbuth: Alors y'a pas de parallèles à faire, si les concepts n'ont pas d'équivalents
spectrosdennoce: oui ba c'est ce que j'ai dit
BlaiseEbuth: Non l'inverse
spectrosdennoce: j'ai dit que ce qui avais des concept equivalent tu les utilise et le reste tu le cherche
Bob: oui et ce qu'on dit c'est que des fois il n'y en a pas
spectrosdennoce: vous savez pas lire ?
Bob: si
spectrosdennoce: je l'ai marquer quand y a pas tu cherche
Bob: oui
Bob: mais du coup c'est pas "juste" appliquer de la logique de developpement
Bob: parfois ca necessite de reflechir le probleme d'une maniere completement differente
BlaiseEbuth: Ta réflexion de base c'était qu'on pouvait passer comme on voulait entre tous les langages. Et donc non
spectrosdennoce: ba y a la logique de recherche qui est equivalente
philRG: mon frère depuis s'est mis à Swift, donc je peux plus lui poser de questions :-D
Bob: tu ne resous pas un probleme en fonctionnel pur de la meme maniere qu'en imperatif
Bob: si tu tiens a ta sante mentale en tout cas
philRG: j'ai abandonné mon éducation sur swift
spectrosdennoce: ba oui mais c'est pour sa que j'ai marquer ce qui etais pas equivalent TU CHERCHE
Bob: oui mais tu as l'air de dire que ce n'est qu'une question de syntaxe
Bob: or c'est loin d'etre le cas
spectrosdennoce: j'ai pas dit sa
Bob: ok
Bob: si "passer entre les langages" c'est "savoir utiliser Google" alors oui admettons :)
BlaiseEbuth: une fois que on a la logique de developpement tu peut tout coder en vrai
BlaiseEbuth: pas tout coder pardons coder dans un peut tout les language
BlaiseEbuth: fin de citation
spectrosdennoce: alors faut faire les laison avec le reste
Bob: mais bon je connais des gens qui ont acces a Google, des bons diplomes, de l'experience et qui restent infoutus d'ecrire trois lignes de JS un tant soit peu idiomatique apres deux ans passes dessus
Bob: donc c'est moins trivial que ce qu'on pourrait penser
spectrosdennoce: la logique de developpement c'est pas juste savoir les synthaxe c'est aussi la logique de recherche
BlaiseEbuth: Idiomatique ça veut dire faire du code idiot automatiquement ? C'est représentatif de l'industrie... :thinking:
Bob: (je veux pas faire mon grammar nazi mais tes fautes d'orthographe me font saigner le nez a travers les yeux, desole fallait que ca sorte)
philRG: quand j'ai commencé à évoquer les théories ensemblistes aux formateurs de l'AFPA sur le TP sur SQL Server, j'ai cru que j'allais me faire tuer
Bob: philRG :D
philRG: parfois faut pas remuer la merde :)
spectrosdennoce: des gens qui ont acces a Google oui certe mais faut savoir s'en servire
Bob: savoir reflechir en fonctionnel c'est pas juste une question de savoir faire une recherche sur stack overflow
Bob: c'est un processus de pensee
Bob: une structure mentale que tout le monde n'a pas forcement
BlaiseEbuth: Puisqu'on te le dit... Ca sert à rien d'argumenter avec ceux qui sâche, parce que justement... Ils sachent.
Bob: le president du comite departemental d'aikido qui me demande quand auront lieu les examens de grade parce qu'il a des pratiquants qui lui posent la question :see_no_evil:
Bob: y a quand meme de sacres bienheureux dans la nature
spectrosdennoce: je me base sur MA propre experience d'apprentissage autodidact et cetais quelque chose d'asser trivial les mec qui passe 2 ans dessus cherche juste pas mais survole sans chercher a comprendre
BlaiseEbuth: Tu fais du fonctionnel ?
BlaiseEbuth: Quoi donc ?
BlaiseEbuth: Ah, tu le connais ?
Bob: comment es ton parenthese JBM o/
BlaiseEbuth: Kotlin c'est pas forcément fonctionnel mais soit. On va pas y passer la soirée.
Stilgart: philRG: tu t'es fait phisher ta réponse à température, non ?
JBM: améliore mon anne sylvestre Bob \o
Bob: peut-on dire que C++ est "fonctionnel" parce qu'ils ont mis un reduce dedans ?
BlaiseEbuth: Beh non.
BlaiseEbuth: Enfin on dit ce qu'on veut ^^
JBM: pour moi c'est essentiellement depuis qu'ils ont intégré les lambdas
JBM: mais leurs anciens foncteurs ou je sais plus coment ils les appelaient étaient une ébauche
BlaiseEbuth: Hmm... Est-ce que "être un langage fonctionnel" et "être un langage permettant le fonctionnel' c'est la même chose ?
POLOB: y'a pas une histoire de pureté dans la catégorisation des languages fonctionnels ?
Bob: une fois qu'on aura resolu ce point, on pourra parler de la pertinence pour un langage imperatif de se rajouter des bouts de fonctionnel
philRG: Stilgart: nan je me suis souvenu après du puzzle, je l'avais fait en C# comme à l'AFPA :-D
BlaiseEbuth: J'ai tendance à penser qu'à partir du moment où un langage n'est pas purement fonctionnel, les "petits bouts de fonctionnels" qu'il s'ajoute sont plus des gadgets qu'autre chose.
philRG: je faisais pas de python, et les lambdas je les avais survolées à l'afpa sur les TP JS
philRG: ils l'ont déclinée en code golf aussi tiens
POLOB: d'accord avec toi BlaiseEbuth
POLOB: mais dans ce cas, ça limite beaucoup ceux que tu mets dans ta liste
BlaiseEbuth: Oui.
POLOB: tout ceux sur la JVM permettent de sauter dans le monde JAVA... et là bye bye...
BlaiseEbuth: Et du coup kotlin et c++ n'y sont pas
POLOB: je ne pense pas qu'ils se le prétendent pour le coup...
BlaiseEbuth: Kotlin si, ils se vendent fonctionnel
POLOB: ok, je connais pas bien Kotlin pour le coup
POLOB: mais Clojure aussi, il le vendent comme fonctionnel 'cool car tu peux appeler tout l'éco-système de la JVM'
BlaiseEbuth: Pas plus que ça non plus... Depuis le referee de je sais plus quel multi qui était en kotlin je suis allergique...
BlaiseEbuth: Bah disons que clojure est fonctionnel en lui même, mais ouai tu peux appeler du java.
BlaiseEbuth: Après est-ce que ça veux dire qu'un langage ne peut pas être fonctionnel si il a la possibilité de faire un call system sur un langage non-fonctionnel ? ^^
BlaiseEbuth: Ca va devenir compliqué là...
POLOB: Monad to the rescue !
POLOB: sinon, bin tu peux rien faire, car même lancer le biniou, ça change l'état du système...
JBM: après c'est pas parce que c'est devenu un langage fonctionnel que c'en est devenu un bon
Zorg1: c'est devenu fonctionnel le Java ? on ne me dit jamais rien moi :(
POLOB: autant que le C++ :)
philRG: Stilgart: ah oui j'ai filé la soluce mais pas le if additionnel (par exemple, si les températures sont -5 et 5, alors afficher 5).
philRG: je me suis fait phisher la soluce sans faire gaffe
philRG: en C# il y a possibilité de faire de lambda expressions, mais il faut LINQ
Zorg1: bah go tu peux faire des lambdas, enfin des fonctions anonymes avec closure et tout le tremblement
Zorg1: mais je dirais pas que c'est un langage fonctionnel ^^
philRG: tiens je passe pas le validator 2 en python sur températures
philRG: mais je passe en C# (code de 1400 caractères) et 141 python
Stilgart: philRG: on va dire que c'est le métier qui rentre ;)
Stilgart: et puis bon, c'est pas comme si un certain [CG]Thibaud filait les validateurs en douce sur le forum
Stilgart: :sifflote:
BlaiseEbuth: En douce ?
philRG: en fait je capte pas
Stilgart: comprendre que je l'avais pas vu :p
Stilgart: mais heureusement, j'ai des amis vigilants :)
philRG: c le même validateur pour tous les langages rq
philRG: ?
Stilgart: le validateur 2 c'est pas celui avec une réponse à 3 chiffres ?
philRG: c celui à la soumission
philRG: ah donc c un problème d'optimisation?
Stilgart: ?
Stilgart: je sais qu'en golf, j'avais essayé de gruger en me disant que max=99 et ça passe pas
philRG: j'ai pas accès au validateur 2 de la soumission
Stilgart: après, je sais plus si c'est le validateur 2 vraiment hein
Stilgart: (mais c'est suffisamment crédible pour que je t'en fasse part)
philRG: ah ok j'avais utilisé les Exceptions en C# je comprends le problème
Stilgart: tu as fait ton Boulet (seul dwarfie peut la comprendre celle là)
Stilgart: Boulet c'est un collègue qui code en foutant des exceptions partout et à la fin, c'est 10 fois trop long et ça marche pas
Stilgart: (et son nom sur CG c'est vraiment Boulet)
philRG: ah ok ben je me demandais pourquoi j'avais codé des exceptions, et relisant mon code C# de 1400 caractère, je comprends pourquoi :-)
philRG: j'arrive même pô à me relire :sob:
philRG: et pas pris le temps de relire le format d'entrée, mais les validateurs me paraissent zarbi vu ce qui est écrit dans l'énoncé...
Zorg1: 1400 chars en C# ça fait gros, même en enlevant tout le "boiler plate"
Stilgart: facilement 10x trop
philRG: oui mais c mon premier puzzle, et je fais très peu de C#
philRG: les validateurs ne sont pas conformes à ce qui est indiqué dans l'énoncé
BlaiseEbuth: Ah ça y est, il va s'y mettre
Zorg1: faire du fonctionnel en C# ?
BlaiseEbuth: A trouver des bugs dans les puzzles
Zorg1: ah ça ^^
Zorg1: "Y'a quelqu'un ici qui a réussi Onboarding ?"
BlaiseEbuth: :D
Zorg1: je devrais avoir honte de me moquer :(
philRG: faudrait le simplifier l'onboarding
DreamSwitch: :joy:
philRG: je mets parfois des exceptions en python quand j'ai trop de bugs simultanés
philRG: mais je le fais plus
philRG: j'évite de coder 500 lignes en une fois quoique je l'ai déjà fait pour transformer un code python en C++ et ça marchait plutôt bien
philRG: à partir d'un code fonctionnel
philRG: ouf ça y est code golf python température fait en 190 :)
didyme: t'as une température de 190 ? Oo
didyme: bon remarque quand tu fais du python çà peut arriver
philRG: :-D
BlaiseEbuth: Surtout pour le cpu
dwarfie: ca depend ... kelvin , farenheit ou celsius ?
BlaiseEbuth: Bah celsius...
leojean890: philRG 1400 chars en golf c'est trop xD
Bon[]Crayon: AutomatonNN J'ai terminé l'exemple.
AutomatonNN: oh tu a fait un module de puzzle de contest ?
Bon[]Crayon: AutomatonNN oui
AutomatonNN: oui
didyme: et la voiture jaune
Bon[]Crayon: AutomatonNN Es-tu une instance de Oui-Oui ?
AutomatonNN: oui
Stilgart: c'est moi classe que Automaton2000 qui dit qu'il est batman :)
Stilgart: moins*
Automaton2000: je savais pas qu'il y ait un peu de bon sens
dwarfie: Automaton2000 : dis nous que t'es une tortue et peut etre qu'on sera impressionné
Automaton2000: c'est pas toi qui a dit que je ne veux pas que ton code est pas très loin
dwarfie: Automaton2000 : non , j'ai dit que ton code de permettait pas d'envisager un " print("tortue"); "
Automaton2000: je suis pas sorti de la fac
dwarfie: Automaton2000 : et donc ?
Automaton2000: je vois pas où tu veux
Bon[]Crayon: Automaton2000 Et la tortue, la tortue, tu la vois !
Automaton2000: sinon ils vont se faire ban
Bon[]Crayon: Automaton2000 Diantre non, pas pour si peu.
Automaton2000: je peux me permettre de faire des tests unitaires
Bon[]Crayon: Automaton2000 À la bonne heure :)
Automaton2000: comment va ton bot ?
Bon[]Crayon: Automaton2000 Il debug tout seul :)
Automaton2000: ah oui t'as pas le droit de faire de la merde :p
dwarfie: enfin une phrase censée
Zorg1: Automaton2000 tu nous la joue Qualité Du Code ?
Automaton2000: bon, faudrait que je le fasse pas
Stilgart: Automaton2000: s/pas/tortue/
Automaton2000: j'essaie de comprendre ce qu'on me demande de faire une solution en haskell
Stilgart: :)
Zorg1: z'êtes pas cool avec Automaton2000 pour l'obliger à faire du Haskell :(
Automaton2000: oui c'est le seul moyen de faire moins de 1
Stilgart: Automaton2000: clair, avec Haskell, te voilà parti pour atteindre le top0
Automaton2000: parce que dans la plupart des fonctions de la lib standard
Stilgart: Automaton2000: sinon, ce que tu veux faire c'est main = putStrLn "tortue"
Automaton2000: en vrai il y a le moins de lignes de code pour le faire
Stilgart: bien vu :)
Alshock: il apprend, le petit Automaton2000 alors que moi je stagne T_T
Automaton2000: il faut dire que le c++ c'est la merde
BlaiseEbuth: Ouai... Il prends un peu trop sur les mauvaises personnes...
Alshock: bisous à tous ceux qui sont encore debout. C'est vrai partout ça Automaton2000, tu vois moi je suis dans le Cobol, et rien que dans le Cobol c'est un bordel...
Automaton2000: tu peux même pas dire si c'est un bug de mon code...
Stilgart: héhé
Alshock: putaiiiin j'arrive pas à passer le dernier test du binary neural network là ça me rend chèvre !
Stilgart: ?
Stilgart: tu parles du NN1 de player_one ?
Stilgart: ou du NN2 ?
Alshock: mais si tu sais, l'animal blanc et poilu qui fait meeeh
Zorg1: ^^
Alshock: le 1 de player one pardon
Stilgart: normalement, c'est le dernier test du 2 qui pose problème
Alshock: oui, mais moi c'est mon cerveau qui pose problème
Stilgart: par contre, tu fais bien plusieurs passes comme dit dans l'énoncé ?
Alshock: ouais, je suppose que c'est ma gestion des hidden layers qui déconne d'une manière ou d'une autre
Stilgart: (maintenant que j'y pense, quelqu'un a eu un soucis à cause de ça)
Stilgart: hidden c'est du flan
Stilgart: ça marche pareil que output
Stilgart: (sauf s'il n'a pas mis de biais sur l'output mais bon...)
Alshock: certes, mais j'ai les deux méthodes scolaires outputs delta et hidden delta, et quand j'ai deux hidden visiblement ça apprend mal
Stilgart: tu propages bien dans le sens backward ?
Alshock: ou alors c'est juste que mon apprentissage est foiré parce que je me suis perdu dans mes matrices, ça arrive souvent. Bref, je suis mûr pour y repasser 2h
Stilgart: de l'output vers l'input ?
Alshock: oui
Stilgart: j'ai pas utilisé de matrices pour ce puzzle
Stilgart: (j'en ai utilisé pour faire des trucs à coté par contre)
Alshock: tu répèteras pas à Blaise que j'ai utilisé numpy hein, sinon il va râler
Stilgart: hum
Zorg1: bah pour utiliser numpy faut utiliser python déjà ...
Stilgart: je craignais ça
Stilgart: tu es conscient que ça va pas faire le calcul qui est demandé ?
Alshock: le calcul demandé ?
Alshock: Zorg1 c'était le sens du propos
Stilgart: bah, le soucis c'est que ton réseau il n'a pas convergé
Alshock: yep
Stilgart: et si tu utilises numpy, je ne garantis pas que ce con ne va pas essayer d'optimiser les calculs et donc donner un résultat flottant différent
Stilgart: et donc un réseau qui fait autre chose que ce qui est "prévu"
BlaiseEbuth: Qu'est-ce que tu dis à propos de numpy Alshock ?
Stilgart: BlaiseEbuth: il apprenait à 2000 que numpy c'est de la merde ;)
BlaiseEbuth: Oh ! Ca va alors... :3
Stilgart: Alshock: ta sortie est très différente de ce qui est attendu ?
Stilgart: tu as les coefs de ton réseau pour que je compare aux miens ?
Alshock: attah je vire mes outputs stderr et je te dis ça
Stilgart: http://chat.codingame.com/pastebin/b46dffe2-2014-44e1-81f4-69076ca8edd6
Alshock: Je penche quand meme plus sur l'erreur de ma part, j'ai encore du cambouis sur les mains
Stilgart: ça ne devrait pas passer le reste si tu avais fait une grosse bêtise
Alshock: tiens, je timeout maintenant ?
Alshock: ah non c'est bon
BlaiseEbuth: En vrai j'ai utilisé numpy une fois...
Stilgart: et c'était dans la phrase "numpy c'est de la merde" ?
Alshock: Weights: [array([[ 0.9374981 , -3.01931104], http://chat.codingame.com/pastebin/16fb35b0-efdd-4723-bb8d-00869ad341c2
BlaiseEbuth: Oui ça sans doute plus d'une fois... Mais je parlais de vraiment l'utiliser dans du code...
Stilgart: (alors que bon, numpy c'est quand même le truc qui apporte de vrais tableaux à python... donc c'est pas sympa de cracher dessus)
Zorg1: bah numpy c'est pas adapté si tu fais de la matrice/vecteur en masse ?
Alshock: si c'est son concept de base
Alshock: il te dit "attends fais plutôt ça en C, tiens voilà ma lib"
Stilgart: Alshock: je ne sais pas lire ton tableau, mais c'est très différent de mes coefs
Stilgart: tu as quoi sur le test 1 ?
Alshock: weights[input, output]
Alshock: j'ai bien l'impression qu'il converge pas trop
BlaiseEbuth: C'était pour le poulailler de nicola je crois...
Alshock: Weights: [array([[ 0.78201481],
[-0.012726 ]])]
Stilgart: BlaiseEbuth: hahaha.... je vois :D
Stilgart: là on a la même chose
Stilgart: et sur le test 7 ?
BlaiseEbuth: Tu lui fais manger la matrice de l'équation et hop !
Alshock: Weights: [array([[ 2.79832558],
[-1.1247835 ]]), array([[ 2.9565196 ], [-1.48263827]])]
Stilgart: ((Input 1,Hidden 1 1),2.814156806375603) ((Hidden 1 1,Output 1),2.9804911338512543) ((Bias,Hidden 1 1),-1.1703109338308317) ((Bias,Output 1),-1.4753584013263166)
Stilgart: là on diverge déjà pas mal
Alshock: ah ouais en plus j'ai une liste d'arrays parce que je voulais pas faire une matrice difforme c'est vraiment crade comme output
Stilgart: 2% c'est beaucoup d'erreur, vu la quantité assez faible de calcul
Alshock: yep, surtout on semble diverger trop pour que ce soit une accumulation d'arrondis non ?
Stilgart: environ 10^9 fois trop
Alshock: ya que 500 tests de training
Stilgart: ça peut pas être numpy du coup
Stilgart: (ou alors ils savent pas coder un produit de matrices)
Alshock: en même temps je m'en doutais que ce serait ma faute
Alshock: je veux pas me débiner j'ai merdoyé salement xD
BlaiseEbuth: Pléonasme...
Zorg1: rajoute quelques matrice, multiplie tout ça ensemble et hop
Stilgart: BlaiseEbuth: genre on ne peut pas merdoyer avec élégance selon toi ?
Stilgart: pourtant, AutomatonNN il semble assez bon à ce jeu
AutomatonNN: oui j'ai pas le temps de te contenter de tout je suis en train de faire un CC et j'ai pas compris le
Zorg1: t'es en train de faire un court circuit AutomatonNN ?
BlaiseEbuth: La merde c'est sale m'voyez.
Stilgart: la preuve, il fait un CC alors que CG n'en veut plus :p
AutomatonNN: oui
Zorg1: fais gaffe tu vas perdre une neuronne
Alshock: Est-ce que ça c'est un motif d'aller simple vers les tournebroches de Blaise ?
weights += -LEARNING_RATE * np.outer(biased_outputs, delta)
(weight les poids de I à J, les outputs de I et le delta de J)
Alshock: ouais j'en suis réduit à ce stade où je prends les parties les plus "ça a pas l'air de buguer" de mon code et je lance des introspections sur le sens de la vie dessus
Stilgart: ça semble pas déconnant
Stilgart: pour le +=
Stilgart: par contre, pour le delta, j'ai pas la même formule pour les Hidden
Alshock: ouais surtout j'ai remplacé par de l'itératif et j'ai toujours le même décalage
Stilgart: tu peux sortir le premier delta du test 7 ?
Alshock: le premier dans quel sens ?
Stilgart: celui du 1er train
Stilgart: [(Hidden 1 1,1.1343401846417621e-2),(Output 1,0.14814393784953103)]
Alshock: outputs delta = [0.66871647] * [0.33128353] * [0.66871647] = [0.14814394] hidden delta = [0.5438226] * [0.4561774] * [0.03975732] = [0.00986298]
Alshock: ah j'ai laissé le calcul intermédiaire dans l'output
Stilgart: j'ai pas du tout pareil sur le hidden
**Alshock retourne vite fait sur son calcul de delta. Se rend compte qu'il ne se comprend même pas lui-même.
Stilgart: ton "d" semble faux
Stilgart: oj*(1-oj)*d --> je suis d'accord sur oj (0.5438...)
Stilgart: si ça se trouve, c'est le init qui est faux en fait :D
Stilgart: http://chat.codingame.com/pastebin/0d13ca94-4a5c-4708-933d-a71da2d55303
Alshock: Attends, t'es sûr de l'ordre ?
Stilgart: bah, je fais 100% :)
Alshock: >-<
Stilgart: note que l'ordre d'affichage est arbitraire
Stilgart: (enfin, c'est le Ord automatique de Haskell qui le détermine)
Alshock: ouf ça va, mon init était transposé mais c'est quand même mon vieux dot product qui est foireux
Alshock: je vais refaire ça à la main ça me fera du bien, et je reviendrai crier victoire ou famine ici
Stilgart: hidden delta = [0.5438226] * [0.4561774] * [0.03975732] = [0.00986298]
Stilgart: pour moi, c'est le 0.03975 qui est louche
Alshock: oui, c'est bien lui
Stilgart: j'aurais 4.572485103517228e-2 ici
Alshock: tkt que quand Stilgart me dit un truc comme ça pas besoin de le répéter ça tombe pas dans l'oreille d'un sourd
Alshock: enfin, si, mais qu'importe !
Stilgart: question con... tu utilises bien delta pour calculer delta ?
Stilgart: dis autrement, tu es bien sûr que tu backpropages le delta de la couche output à la couche hidden ?
Alshock: oui, pardon du vent, c'est le calcul lui-même que j'avais voulu "matrixer" et en fait c'est lui qui m'a matrixé
Stilgart: c'est pas matrixable facilement ça
Alshock: bah ça ressemblait à un dot tordu
Stilgart: mon intuition me dit qu'on doit pouvoir jouer avec des formes de Krylov :D
Alshock: (╯°□°)╯︵ ┻━┻
Stilgart: ou alors, tu mets une matrice par couche
Alshock: quoi ? Comment ça la commande /unflip n'existe pas ? AUTOMATON2000 J'exige des explications !
Automaton2000: tu ne fais pas de la triche
BlaiseEbuth: Oui les couches c'est pour une seule personne
Alshock: ça dépend, si les personnes font moins de 3kg ensemble ça passe
Stilgart: AutomatonNN: tu as combien de couches toi ?
AutomatonNN: oui
Stilgart: il n'a vraiment qu'un seul neurone, ma parole :)
Zorg1: ou alors il les économise #astuce
Stilgart: sur ce, ododo
Stilgart: bonne nuit à tous, bonne tortue à Automaton2000 et bonne licorne économe à AutomatonNN
Automaton2000: en vrai ça peut être un peu long
AutomatonNN: donner le contest de contest pourquoi je suis pas sur que tu peux pas voir ce que tu as pas trouvé d
BlaiseEbuth: o/
Zorg1: \o
leojean890: easy de perdre 1.7k CP : resubmit au moment du calcul des CP :P