Vitesse matrice en blob ou tableaux?

Bonjour,

j’essaye de faire du machine learning avec 4D (…), et pour cela utiliser des matrices de grande dimensions.
Je recherche la vitesse deja au depart avec les commandes 4D existantes, et j’ai compare sur la base de valeurs simple 0 ou 1, la vitesse de traitement entres un tableau entier long et celle de blobs .

Le blob en compile est presque 2 fois plus rapide (interessant…).

Vu l’experience de certains, peut-etre qu’ily a encore plus rapide a faire?

Merci de votre contribution :pray:

Voici code de comparaison (a tester en compile) :
Vitesse obtenue en millisecondes (macbook i7);
265 /Ms pour le tableau 2D
138 /Ms pour le blob

<code 4D>
TABLEAU ENTIER LONG($tab;100000;200)

C_ENTIER LONG($i;$a;$bcl;$tot;$val;$t1;$t2)
$t1:=Nombre de millisecondes
$val:=0
Boucle ($i;1;100000)
Boucle ($a;1;200)
Si ($val=0)
$val:=1
Sinon
$val:=0
Fin de si
$tab{$i}{$a}:=$val
Fin de boucle
Fin de boucle
$t1:=Nombre de millisecondes-$t1
ALERTE(Chaine($t1))

TABLEAU BLOB($Tblob;100000)
C_BLOB($blob)
FIXER TAILLE BLOB($blob;201)
$t1:=Nombre de millisecondes

Boucle ($i;1;100000)
Boucle ($a;1;200)
Si ($val=0)
$val:=1
Sinon
$val:=0
Fin de si
$blob{$a}:=$val

Fin de boucle 
$Tblob{$i}:=$blob

Fin de boucle

$t1:=Nombre de millisecondes-$t1
ALERTE(Chaine($t1))

</code 4D>

Encore plus vite avec 4D ? ^^

Bonjour,

Il y a beaucoup a dire sur le code de test qui a mon avis n’a pas de
sens.
Cependant, le plus important est :

: Marc LONGO

Voici code de comparaison (a tester en compile) :
Comment imaginer une seule minute une recherche de vitesse, et ne pas tester en compile ?
C’est d’ailleurs la meilleur facon de se fourvoyer dans des erreurs car si l’on teste en compile, sur ma machine, les resultats s’inversent.

Cordialement,

Salut,

dans le 1er test a defaut de vitesse (?) au moins de la lisibilite ligne 13:

$tab{$i}{$a}:=num($val=0)

et on vire le si fin de si

: Olivier DESCHANELS

Bonjour,
… sur ma machine, les resultats s’inversent.

Cordialement,

Oui evidement ca n’aurait pas de sens de tester non compile, c’est pour cela que je le precise…

Mais comment est-ce possible que les resultats soient inverses d’une machine a l’autre? Tu es sur PC @Olivier?

@Bertrand, oui tu as raison, inutile d’appliquer la valeur zero puisqu’elle y est par defaut . Au dela ce ca, je cherche le moyen d’utiliser dans commandes ou type de champs pour faire des matrices les plus rapide possible…

Bonjour,

: Marc LONGO

Tu es sur PC @Olivier?

Non, je ne suis pas passe du cote obscur …

: Marc LONGO

Mais comment est-ce possible que les resultats soient inverses d’une
machine a l’autre?

Quand les valeurs sont trop petites et les ecarts trop faibles, c’est assez frequent. Il suffit que la machine decide de faire une tache subalterne au moment inopportun pour avoir des resultats etranges.

Cordialement,