Как я могу оптимизировать текущую сеть в Юлии с Flux? - PullRequest
3 голосов
/ 08 февраля 2020

У меня есть рекуррентная нейронная сеть в Flux в виде:

net = Chain(LSTM(8,100), Dense(100,1))

Вход в сеть - это мелкие столбцы данных запаса (каждый из этих столбцов имеет 8 номеров), где может быть различное количество баров, подаваемых в рекуррентную сеть. Я повторяю это примерно на 2000 различных акций. Вот как обычно выглядят данные:

enter image description here

enter image description here

Я использую следующую функцию чтобы передать данные в текущую сеть:

function mapNetworkOverStocks(net, stocksInput)
    unFlattened = map(x -> (output = net.(x); Flux.reset!(net); output), stocksInput)
    map(x -> map(y -> y[1], x), unFlattened)
end

и вызвать ее с помощью:

mapNetworkOverStocks(net, allStocksData)

Проблема в том, что она работает довольно медленно. В Mathematica я могу заставить подобный код работать за 7.79389 секунды, в то время как у Джулии это занимает 93.413394 секунды. Есть ли способ запустить это так же быстро, как версия Mathematica?

...