Discussão do artigo "Redes Neurais de Maneira Fácil (Parte 5): Cálculos em Paralelo com o OpenCL" - página 5

 
Dmitriy Gizlyk #:

Olá, você não precisa instalar o arquivo .cl. Basta carregá-lo no programa principal como a string


Hi!
Obrigado por sua resposta rápida. Acho que o problema real é que meu sistema não é compatível com OpenCL. Isso significa que não poderei continuar com esta série daqui para frente?


Edit(SOLVED): Embora pareça que a AMD deixou de oferecer suporte ao OpenCL, há um pacote gratuito de compatibilidade com Microsoft OpenCL e OpenGL e agora ele compila.

 

Bom dia Dmitry, muito obrigado por suas publicações, que me ajudaram muito a aprimorar meu conhecimento em desenvolvimento. Ficarei muito grato por sua orientação. No momento, estou estudando o artigo sobre computação multithread (nº 5). Tentei executar um arquivo compilado a partir dos anexos, mas ele não é executado e trava todo o terminal. Tentei reconstruir a partir dos códigos-fonte, o resultado é o mesmo, o que me faz pensar que não é por causa dos códigos-fonte. Tentei executá-lo no testador: ele trava quando o método CNet::backPropOCL é chamado na linha 1486 (neuron.calcHiddenGradients(nextLayer.At(0));), e já na função predefinida do catálogo OpenCL (CLExecute(kernel_handle,work_dim,work_offset,work_size)). O mais interessante é que não há nenhum erro nos registros, mas o testador também falha. Você pode me dizer qual pode ser a causa disso? Obrigado.

 
Aleksandr Seredin computação multithread (nº 5). Tentei executar um arquivo compilado a partir dos anexos, mas ele não é executado e trava todo o terminal. Tentei reconstruir a partir dos códigos-fonte, o resultado é o mesmo, o que me faz pensar que não é por causa dos códigos-fonte. Tentei executá-lo no testador: ele trava quando o método CNet::backPropOCL é chamado na linha 1486 (neuron.calcHiddenGradients(nextLayer.At(0));), e já na função predefinida do catálogo OpenCL (CLExecute(kernel_handle,work_dim,work_offset,work_size)). O mais interessante é que não há nenhum erro nos registros, mas o testador também falha. Você pode me dizer qual pode ser a causa disso? Obrigado.
Bom dia, Alexander.
Se entendi corretamente, ele trava ao executar o programa OpenCL. Tente executar no modo de depuração e verifique os tamanhos dos buffers que estão sendo transferidos. Talvez o erro esteja no array overrun no programa OpenCL.
 

Olá, Tobias,

Basta copiar o arquivo .cl (dos downloads) e colá-lo na pasta "include" do Meta Editor. O compilador o encontrará.

Abraços

 

No método "bool CNeuron::feedForward(CLayer *prevLayer)", do arquivo "NeuroNet.mqh", há uma linha:

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

Não entendo por que o resultado da função de ativação é de -18 a 18, não deveria ser de -1 a 1 ou de 0 a 1?

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

Não entendo por que o resultado da função de ativação é de -18 a 18, não deveria ser de -1 a 1 ou de 0 a 1?

Isso restringe o argumento da função de ativação, não seu valor. Adicionado para que o gradiente da função de ativação não seja direcionado para valores próximos a 0.

 
Dmitriy Gizlyk condições de mercado.

Você poderia me dizer que recentAverageSmoothingFactor = 10000 é baseado em 2 anos?

365 dias * 2 anos * 24 horas = 17.520 velas de hora (duração da amostra).


Estou usando uma amostra de 1 ano, então preciso reduzir para 8.760 (365 * 24 = 8.760)?

Nos testes, tenho dForecast saltando de 0 a 23, e o erro é 0,32 e permanece constante, é normal ou é porque recentAverageSmoothingFactor está errado? 😀

 

Oi Dimitri,

Adoro seus artigos e estou começando a trabalhar neles.

Onde está a classe CBuffer? Não consigo encontrá-la.

Com os melhores cumprimentos,

Benjamin

 
Benjamin Doerries # :

Olá, Dimitri,

Adoro seus artigos e estou começando a trabalhar neles.

Onde está a classe CBuffer? Não consigo encontrá-la.

Com os melhores cumprimentos,

Benjamin

Não importa, encontrei a solução para alterá-lo para CBufferFloat, conforme descrito por você em outros artigos :)

 
Quando em execução, tenho outros dispositivos OpenCl que não estão em execução. Posso usar vários dispositivos para computação paralela?