Как я могу оптимизировать повторяющуюся сеть в Julia с помощью Flux?

У меня есть повторяющаяся нейронная сеть в Flux формы:

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

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

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

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?

0 ответов