如何在Matlab中使用“ Keras中的预训练体重”?

时间:2019-05-27 07:21:31

标签: matlab keras

我在Keras中获得了LSTM的权重,并将其设置为CSV。 我在Matlab2016b中使用权重。 如何解决?

我做了一些使用重量的功能:

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是输出节点的权重和偏差。

该代码正确吗?我很困惑。

0 个答案:

没有答案