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
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