Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 5): Cálculos multihilo en OpenCL" - página 5

 
Dmitriy Gizlyk #:

Hola, no necesitas instalar el archivo .cl. Sólo tiene que cargar en el programa principal como cadena


¡Hola!
Gracias por la rápida respuesta. Creo que el verdadero problema es que mi sistema no soporta OpenCL. ¿Significa eso que no puedo continuar con esta serie de aquí en adelante?


Editar(RESUELTO): Aunque parece que AMD ha dejado de soportar OpenCL hay un Microsoft OpenCL and OpenGL Compatibility Pack gratuito y ahora compila.

 

Buenos días Dmitry, muchas gracias por tus publicaciones, que me han ayudado mucho a mejorar mis conocimientos en el campo del desarrollo. Le estaría muy agradecido por sus consejos. Actualmente estoy estudiando el artículo sobre computación multihilo (#5). He intentado ejecutar un archivo compilado de los adjuntos, no se ejecuta y se bloquea todo el terminal. Intenté reconstruir desde los fuentes, el resultado es el mismo, lo que me hace pensar que no es por los fuentes. Intenté ejecutarlo en el tester: se bloquea cuando se llama al método CNet::backPropOCL en la línea 1486 (neuron.calcHiddenGradients(nextLayer.At(0));), y ya en la función predefinida del catálogo OpenCL (CLExecute(kernel_handle,work_dim,work_offset,work_size)). Lo más interesante es que no hay ningún error en los logs, pero el tester también se cuelga. ¿Puedes decirme a qué puede deberse? Gracias.

 
Aleksandr Seredin computación multihilo (#5). He intentado ejecutar un archivo compilado de los adjuntos, no se ejecuta y se bloquea todo el terminal. Intenté reconstruir desde los fuentes, el resultado es el mismo, lo que me hace pensar que no es por los fuentes. Intenté ejecutarlo en el tester: se bloquea cuando se llama al método CNet::backPropOCL en la línea 1486 (neuron.calcHiddenGradients(nextLayer.At(0));), y ya en la función predefinida del catálogo OpenCL (CLExecute(kernel_handle,work_dim,work_offset,work_size)). Lo más interesante es que no hay ningún error en los logs, pero el tester también se cuelga. ¿Puedes decirme a qué puede deberse? Gracias.
Buenos días, Alexander.
Si he entendido bien, se bloquea al ejecutar el programa OpenCL. Prueba a ejecutarlo en modo depuración y mira los tamaños de los buffers que se transfieren. Quizás el error esté en el array overrun en el programa OpenCL.
 

Hola Tobias,

Simplemente copia el archivo .cl (de las descargas) y pégalo en la carpeta "include" en Meta Editor. El compilador lo encontrará.

Saludos

 

En el método "bool CNeuron::feedForward(CLayer *prevLayer)", del fichero "NeuroNet.mqh", hay una línea:

"outputVal=activationFunction(MathMin(MathMax(sum,-18),18));"

No entiendo por qué el resultado de la función de activación es de -18 a 18, ¿no debería ser de -1 a 1 o de 0 a 1?

 
Gexon (MathMin(MathMax(sum,-18),18));"

No entiendo por qué el resultado de la función de activación es de -18 a 18, ¿no debería ser de -1 a 1 o de 0 a 1?

Esto restringe el argumento de la función de activación, no su valor. Se añade para que el gradiente de la función de activación no se lleve a valores cercanos a 0.

 
Dmitriy Gizlyk condiciones de mercado.

¿Puede decirme, recentAverageSmoothingFactor = 10000 se basa en 2 años?

365 días * 2 años * 24 horas = 17.520 horas velas(duración de la muestra).


Estoy utilizando una muestra de 1 año, entonces tengo que reducir a 8.760 (365 * 24 = 8.760)?

En pruebas tengo dForecast saltando de 0 a 23, y el error es 0.32 y se mantiene constante, ¿es normal o es porque recentAverageSmoothingFactor está mal? 😀

 

Hola Dimitri

Me encantan tus artículos y estoy empezando a trabajar en ello.

¿Dónde está la clase CBuffer? No la encuentro.

Saludos cordiales,

Benjamin

 
Benjamin Doerries # :

Hola Dimitri,

Me encantan tus artículos y estoy empezando a trabajar en ellos.

¿Dónde está la clase CBuffer? No la encuentro.

Saludos cordiales,

Benjamin

No importa, he encontrado la solución para cambiarlo a CBufferFloat como describes en otros artículos :)

 
Cuando se ejecuta, tengo otros dispositivos OpenCl que no se ejecutan. Puedo utilizar varios dispositivos para la computación en paralelo?.