pistes pour traduction code écrit en C en python - C - Programmation
Marsh Posté le 10-03-2016 à 17:05:42
voila ce que j'ai fait :
Code :
|
Marsh Posté le 10-03-2016 à 18:52:31
aaronprince a écrit : Je dois écrire un programme en python pour faire un résau MLP (multilayer perceptron) en m'inspirant d'un code écrit en c |
en t'inspirant ou en copiant/traduisant (dans un autre language)?
Citation : le probleme est que je n'ai aucune connaissance en C |
C'est embêtant... Ce ne sont pas les tutos de C qui manquent sur internet, bon courage... (On peut certainement discuter si tel ou tel tuto permet d'apprendre le C correctement, mais pour comprendre à peu près ça devrait suffire je dirait.)
Je ne parle pas Python, mais je ne pense pas que faire du mélange de C et de Python (comme dans ta réponse) soit la bonne méthode. Autant que ceci
Code :
|
(vu à de multiples reprises) ne fait très probablement pas ce que tu veux (déclarer une variable). doc Python...
Je suppose que c'est un exercice et non un problème réel à résoudre? Car dans le deuxième cas il est certainement possible d'appeller le programme issu du code C depuis Python.
Marsh Posté le 10-03-2016 à 19:49:14
effectivement je me ssuis rendue compte de int(i) qui servais "a rien" en python ainsi que de nombreuses autres "erreurs" de ma part avec le for ... en revanche je dois réellemnt programmer un MLP en python en me basant sur cet algorithme en C
Je comprends ce qu'il fait ou et quand mais certaines structures restent "obscures" : notamment cette partie:
typedef struct // -- structure d'un neurone --
{
int nbent; //nombre d'entrees du neurone
double *x; //tableau des entrees X
double *w; //tableau des poids W
double a; //activation (somme ponderee des entrees = somme(WiXi))
double s; //sortie (fonction sigmoide de l'activation =f(a))
double y; //gradient
}strucNeurone;
typedef struct // -- structure d'une couche --
{
int nbneu; //nombre de neurones
strucNeurone *neurone; //tableau de neurones
}strucCouche;
typedef struct // -- structure d'un reseau --
{
int nbcou; //nombre de couches
strucCouche *couche; //tableau de couches
}strucReseau;
typedef struct // -- base d'exemples --
{
int nbex; //nombre d'exemples
double **xx; //vecteurs des entrees
double **sd; //vecteurs des sorties desirees
}strucBase;
strucReseau res; //le reseau MLP
char nficapp[maxcar]; //nom du fichier d'apprentissage
char nficgen[maxcar]; //nom du fichier de generalisation
strucBase app,gen; //les bases d'apprentissage et de generalisation
char nresult[maxcar]; //nom du fichier de stockage des resultats
FILE *ficresu; //fichier dans lequel on stockera les parametres et les resultats
float alpha; //coefficient d'apprentissage (pas de gradient)
int nbpass; //nombre de passes de la base d'exemples
int diment; //dimension d'entree
je comprends ce qu'elle fait mais je parviens pas à la traduire
et puis :
base->xx=(double**)malloc(sizeof(double)*base->nbex);
base->sd=(double**)malloc(sizeof(double)*base->nbex);
là par contre ça s'apparente à du chinois pour moi
et pour ça je comprends mais je vois pas comment traduire:
for (k=1;k<res.nbcou;k++)
for (i=0;i<res.couche[k].nbneu;i++)
{ res.couche[k].neurone[i].a=0.0;
for (j=0;j<res.couche[k].neurone[i].nbent;j++)
{ res.couche[k].neurone[i].x[j]=res.couche[k-1].neurone[j].s;
res.couche[k].neurone[i].a+=res.couche[k].neurone[i].w[j]*res.couche[k].neurone[i].x[j];
}
res.couche[k].neurone[i].s=sigmo(res.couche[k].neurone[i].a);
}
je garde espoir d'une illumination soudaine
Marsh Posté le 11-03-2016 à 08:02:25
Bonjour !
La partie "tableau" en C est toujours un peu problématique si on n'a pas les idées claires sur les pointeurs et la gestion de la mémoire
Mais rassurez-vous, pour peu que j'aie bien compris ce que j'ai lu, les tableaux (listes) en Python sont dynamiques, donc vous pouvez remplacer les "double *" ou "structNeurone *" par des listes de doubles / de "structNeurone" et ne pas tenir compte des instructions "malloc" (au passage, vous avez faire une erreur en les recopiant, ce qui m'a mis le doute en lisant votre message, j'ai été obligé de revenir au message de base pour vérifier qu'il n'y avait pas un truc douteux quelque part )
Comme je ne sais pas comment marchent les structures (ou leur équivalent) en Python, je laisse la place à d'autres, plus calés que moi dans ce langage.
Bonne continuation !
Marsh Posté le 11-03-2016 à 22:33:59
Déjà le code C est faux (il ne marche que si on est en architecture 64 bits, ou sizeof(double) est égal à sizeof(double*)):
Code :
|
Alors que ce devrait être:
Code :
|
Perso, j'aurais codé ainsi:
Code :
|
Bref, base->xx va pointer sur une zone contenant base->nbex pointeur sur un ou des doubles.
C'est un point de détail, mais autant partir d'un programme qui soit juste.
Pour tes structures
typedef struct // -- structure d'un reseau --
{
int nbcou; //nombre de couches
strucCouche *couche; //tableau de couches
}strucReseau;
...
strucReseau res;
En général, un struct se traduira par une classe en python
bref, ici, tu vas avoir un objet res qui a pour structure strucReseau, structure qui aux yeux du programmeur C est transparente: c'est une liste d'objets dont on ne connait pas la taille à la création (en C on maintiendra la taille dans la variable nbcou, en python, on a pas besoin de la faire).
Donc tu vas avoir une classe Reseau avec un membre couche qui est une liste vide au départ, et que tu vas peupler d'objets d'une nouvelle classe Couche
Bon maintenant, il va falloir voir strucCouche
typedef struct // -- structure d'une couche --
{
int nbneu; //nombre de neurones
strucNeurone *neurone; //tableau de neurones
}strucCouche;
Donc même type de structure, tu vas avoir une classe Couche avec un membre couche qui est une liste vide au départ, et que tu vas peupler d'objets d'une nouvelle classe Neurone
Et si on va voir strucNeurone
typedef struct // -- structure d'un neurone --
{
int nbent; //nombre d'entrees du neurone
double *x; //tableau des entrees X
double *w; //tableau des poids W
double a; //activation (somme ponderee des entrees = somme(WiXi))
double s; //sortie (fonction sigmoide de l'activation =f(a))
double y; //gradient
}strucNeurone;
La classe Neurone va avoir 6 champs, dont deux listes de floats, x et w
Bon, je ne programma jamais en python, mais comme ça fait un bon exercice pour s'exercer, j'ai pondu le début (un programmeur expert python saurait surement mieux écrire ça que moi):
Code :
|
J'espère que ça va te donner des idées pour la suite.
Note: Comme je ne connais pas la structure des fichiers base d'exemple, j'ai supposé dans cette ligne
temp = [float(x) for x in f.readline().split()]
que a partir de la troisième ligne, chaque ligne contient une ligne exemple, constituée des valeurs en entrée suivie des valeurs de sortie désirées
Si le fichier a une structure différente (par exemple, les valeurs en entrée et celles de sortie désirées sur deux lignes différentes), adapter le code de lecture des lignes.
A+,
Marsh Posté le 14-03-2016 à 12:42:28
Merci ! je pense voir comment faire je m'y remet avec serieux dès ce soir et je donne de mes nouvelles
Marsh Posté le 14-03-2016 à 21:17:24
Bon j'ai fait ça mais quand je le lance j'ai une erreur : python me dit que diment n'existe pas alors que si !
Code :
|
Marsh Posté le 14-03-2016 à 22:09:30
Ben clairement pas pour cette ligne:
nbneu = diment
Et je vois pas de classe pour Reseau, Couche ni Neurone
A+,
Marsh Posté le 15-03-2016 à 13:38:56
Re bonjour !
j'ai modifier des trucs et crée une classe structure pour lee neurones , couches et pour le reseau seulement je suis pas sûr que ce soit correct
je n'arrive pas à trouver la syntaxe pour appeler nbent dans
Code :
|
Je me sens vraiment nul heureusement que tu me donne des indications !
Code :
|
Marsh Posté le 15-03-2016 à 16:33:01
Enfin je sais pas, mais ça me semble pourtant simple:
Vous allez définir une classe réseau
class Reseau:
....
Et au lieu de faire un
def initReseau():
vous allez faire un
def __init__(self,...)
dans la classe Reseau
L'init de la classe Reseau va utiliser des objets d'une nouvelle classe, Couche, qu'il va falloir définir, et l'init de la classe Couche va utiliser des objets d'une nouvelle classe, Neurone, qu'il va falloir définir aussi.
Si les deux fichiers de données (odeur8.app, odeur8.gen) ne sont pas trop gros, pourriez-vous les poster sur pastebin? que ça donne de quoi tester.
A+,
Marsh Posté le 15-03-2016 à 20:26:21
alors voila pour les fichiers: (je trouve pas comment les ajouter) :
84
31
1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1
-1 -1 1 1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 1
-1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 1
-1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1
-1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1
-1 -1 1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 1
1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1
-1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 1 -1 -1 1 1
1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 1
-1 1 1 -1 -1 -1 1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 1 1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1
-1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 1
-1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 1 -1 -1 -1 -1 1 -1 1 -1 1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 1 1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1
-1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 1
-1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 1
1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 1 -1 -1 1 -1 -1 1 -1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 -1 -1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 1
1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1
-1 1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1
1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1
-1 -1 1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 1 -1 -1 1 -1 -1 1 1
-1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 1
-1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 1 -1 -1 -1 -1 -1 1 -1 1 1
-1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 -1
-1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 1
et pour la generalisation :
21
31
-1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1
-1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 1
-1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 1
1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 1
-1 1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
-1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
-1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1
1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1
Marsh Posté le 15-03-2016 à 22:53:54
J'ai fait des classes et implémenter les autres fonctions néamoins j'ai plusieurs erreurs de syntaxes (je sais pas comment reussir à appeler diment par exemple et puis ensuite je suis pas certaine pour les res.couche[k].neurone[i].a :
Code :
|
Marsh Posté le 16-03-2016 à 02:49:55
Bon, en avançant un peu, si j'ai bien compris, ça devrait ressembler à ça:
Code :
|
les ### sont pour le code interactif que j'ai remplacé par du code de test
Ça devrait te donner une idée. Bon comme j'ai dit, je suis pas du tout programmeur python. Mais je me suis dit que ça faisait une bonne occase d'apprendre quelques trucs sur ce langage.
A+,
Marsh Posté le 16-03-2016 à 16:30:28
Merci j'ai réussi à finir le programme et à le faire tourner (j'ai fait des modifs sur mon programme en m'inspirant de ce que tu avais fait ) !
Merci pour toute ton aide Je suis vraiment nul en programmation meme toi qui n'en à jamais fait tu t'en sort mieux que moi !
Marsh Posté le 10-03-2016 à 16:08:31
Bonjour,
Je dois écrire un programme en python pour faire un résau MLP (multilayer perceptron) en m'inspirant d'un code écrit en c le probleme est que je n'ai aucune connaissance en C
auriez-vous des pistes à me donner pour sa traduction (les trucs du genre correspondance de typedef en python ou encore de double , void ...)
Merci pour toutes les pistes ou traductions que vous pourriez me proposer =)
la partie sur les fichiers je pense savoir comment faire c'est le reste :
comment traduire le void (faire une fonction avec def fonction() ? )
idem pour typedef struct
et