Discussão do artigo "Redes Neurais de Maneira Fácil (Parte 5): Cálculos em Paralelo com o OpenCL" - página 5
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Olá, você não precisa instalar o arquivo .cl. Basta carregá-lo no programa principal como a string
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.
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?
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.
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
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 :)