Classification prediction | MATLAB realizes data multi-feature classification prediction based on Attention-GRU (gated recurrent unit fusion attention mechanism classification prediction, including confusion matrix diagram and classification diagram)

Classification prediction | MATLAB realizes data multi-feature classification prediction based on Attention-GRU (gated recurrent unit fusion attention mechanism classification prediction, including confusion matrix diagram and classification diagram)

List of effects

1
2

1
2

basic introduction

Classification prediction | MATLAB realizes data multi-feature classification prediction based on Attention-GRU (gated recurrent unit fusion attention mechanism classification prediction, including confusion matrix diagram and classification diagram)

programming

  • Complete program and data private message blogger reply: Attention-GRU data multi-feature classification prediction
%%  获取GRU网络权重
grubias = params.gru.bias;
gruweight = params.gru.weights;
%%  同一个epoch中,不同Batch间的state是传递的,但不学习
h0 = state.gru.h0;
[GRU_Y, h0] = gru(p_train, h0, gruweight, grurecurrentWeights, grubias);

%%  注意力参数
Attentionweight = params.attention.weight;   % 计算得分权重
Ht = GRU_Y(:, :, end);                      % 参考向量
num_time = size(GRU_Y, 3);                  % 时间尺度

%%  注意力得分
socre = dlarray;
for i = 1: num_time - 1
    A = extractdata(squeeze(GRU_Y(:, :, i)));
    A = repmat(A, [1, 1, num_hidden]);
 end

%%  注意力得分
a = sigmoid(socre);
Vt = 0;
for i = 1: num_time - 1
    Vt = Vt + a(i, :) .* GRU_Y(:, :, i);
end

%%  注意力机制
bias1 = params.attenout.bias1;
bias2 = params.attenout.bias2;
weight1 = params.attenout.weight1;
weight2 = params.attenout.weight2;


%% Attention输出
weight1 = params.attenout.weight1;
bias1 = params.attenout.bias1;
weight2 = params.attenout.weight2;
bias2 = params.attenout.bias2;
Hthat = fullyconnect(Vt,weight1,bias1) + fullyconnect(Ht,weight2,bias2);

%% 全连接层前置层(降维)
LastWeight = params.fullyconnect.weight1;
LastBias = params.fullyconnect.bias1 ;
FullyconnectInput = fullyconnect(Hthat,LastWeight,LastBias);
FullyconnectInput = relu(FullyconnectInput);

References

[1] https://blog.csdn.net/kjm13182345320/article/details/128163536?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128151206?spm=1001.2014.3001.5502

Guess you like

Origin blog.csdn.net/kjm13182345320/article/details/131776292