Smart guy, dumb guy

I’m writing a perceptron classifier with one layer. It works well, so my colleagues say their algorithms have like 2 or 3 seconds by iteration, and the my one have something like 15 minutes, and it isn’t normal since i’m using Julia, and it should be faster than python. But of course not if you are a dumb ass. Look to this two lines of code, it looks inoffensive:

label = (convert(Array,df[row,1:1]))
append!(perceptron.x, convert(Array,df[row,2:ncolumns]))

so I tried @time call here and get this:

0.002 and 0.008405 respectively.

0.008 * 60.000 iterations * 25 – 30 eras * 10 classes to classify [0-9] + 0.002 * 60.000 iterations * 25 – 30 eras * 10 classes to classify [0-9]

and our champion is here, the problem is the conversion inside the loop, yep, have no free lunch.

How I fix that, simple, outside the loop I parse to an array, and, no more, it’s:

outside:

arr = convert(Array, df)

replaced: 

label = arr[row,1]
append!(perceptron.x, arr[row,2:ncolumns])

And now, 15 seconds, so I have a lot of work here, trying don’t be a dump guy.

That’s all folks.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s