Как использовать «предварительно обученный вес в керасе» в Matlab? - PullRequest
0 голосов
/ 27 мая 2019

Я получил вес LSTM в Керасе и установил его в CSV.И я использую веса в Matlab2016b.Как ее решить?

Я сделал m.function для использования весов:

function pred = fcn(u1, u2, u3, u4, u5,Wi,Wf, Wc, Wo,Ui, Uf, Uc, Uo, bi, bf, bc, bo,denw,denb)
    %#codegen
    A = [u1; u2; u3; u4; u5];
    ht_1=zeros(6,1);
    Ct_1=zeros(6,1);
    ip = Wi*A+Ui*ht_1+bi;
    fg = Wf*A+Uf*ht_1+bf;
    Ch = Wc*A+Uc*ht_1+bc;
    op = Wo*A+Uo*ht_1+bo;

    for i=1:64
        for j=1:6
            i_t = 1/(1+exp(ip(j)));
            f_t = 1/(1+exp(fg(j)));
            C_hat = tanh(Ch(j));
            o_t = 1/(1+exp(op(j)));
            C_t = f_t*Ct_1+i_t*C_hat;
            h_t = o_t*tanh(C_t);
        end
        Ct_1=C_t;
        ht_1=h_t;
    end
    h_t=ht_1;
    pred= transpose(h_t)*denw+denb;

Настройки:

  • количество узлов LSTM равно 6.
  • длина последовательности равна 64.
  • Я установил, что количество входов равно 5. Это данные временных рядов.Поэтому я думаю, что ввод данных (5,1).
  • Wi, Wf, Wc, Wo - это измерение (6,5).
  • Ui, Uf, Uc, Uo - это измерение (6, 6).
  • bi, bf, bc, bo - размерность (6,1).
  • denw, denb - вес и смещение выходного узла.

Это правильный код?Я в замешательстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...